{
  "schema_version": 1,
  "report_kind": "SATE_AUDIT_REPORT_V0",
  "generated_at": "2026-05-23T16:39:05.528Z",
  "header": {
    "project_root_abs": "/home/amari/projects/wudd_core",
    "laravel_version_resolution": {
      "resolved": "11.47.0",
      "major": 11,
      "minor": 47,
      "patch": 0,
      "confidence": "HIGH",
      "authoritySource": "RUNTIME",
      "sources": {
        "declared": "11.0.0",
        "locked": "11.47.0",
        "installed": null,
        "runtime": "11.47.0"
      },
      "findings": [
        {
          "code": "LARAVEL_VERSION_DRIFT_DECLARED",
          "message": "composer.json declares 11.0.0 but runtime reports 11.47.0 (declared constraint is looser than installed)",
          "evidence": {
            "declared": "11.0.0",
            "runtime": "11.47.0"
          }
        }
      ]
    },
    "laravel_major": 11,
    "sate_mode": "FULL_DETERMINISTIC"
  },
  "surface_enumeration": {
    "application_surfaces": {
      "total": 2305,
      "proof_ready": 2058,
      "blocked": 247
    },
    "test_corpus": {
      "test_files_on_disk": 731,
      "manual_tests_discovered": 0,
      "files_scanned": 0
    },
    "note": "APPLICATION SURFACES and TEST CORPUS are different counters — per MANUAL_STAGE_CONTRACT v1 they must not be folded. App surfaces are what SATE audits; test corpus is what MANUAL gates.",
    "FILES_SCANNED": 0,
    "MANUAL_TESTS_DISCOVERED": 0,
    "surfaces_total": 2305,
    "surfaces_proof_ready": 2058,
    "surfaces_blocked": 247,
    "scope_line": "MANUAL_INPUT_SCOPE:\n  source: discoverPhpTestFiles\n  files_total: 0\n  files_considered: 0\n  tests_discovered: 0 (extracted test blocks; many files contain no tests)"
  },
  "manual_stage_verdict": {
    "note": "SAFETY and QUALITY are INDEPENDENT gates per MANUAL_STAGE_CONTRACT v1. Never folded.",
    "safety": {
      "gate": "v1 (refiner/validator.js)",
      "pass_files_count": 477,
      "total_files_evaluated": 725
    },
    "quality": {
      "gate": "v1 (v1, enabled=true)",
      "pass_files_count": 599,
      "total_files_evaluated": 725
    },
    "kb_eligible": {
      "semantics": "binary v1 (YES if QUALITY passes; LIMITED reserved for v2)",
      "eligible_files_count": 448
    },
    "totals": {
      "files_scanned": 728,
      "tests_discovered": 5161,
      "tests_approved": 3085
    },
    "runner_allowlist_files": 1
  },
  "manual_stage_cache": {
    "hits": 728,
    "misses": 0,
    "writes": 0,
    "entries_loaded": 732
  },
  "tier_classification": {
    "A": 253,
    "B": 40,
    "C": 1633,
    "FRAGILE": 132,
    "QUARANTINED": 0,
    "UNCLASSIFIED": 0
  },
  "refusal_ledger": {
    "note": "Each refusal cites the specific signal that triggered it. No mystery refusals.",
    "total_blocked": 247,
    "by_reason": {
      "NO_EXPLICIT_RETURN": {
        "count": 246,
        "surfaces": [
          {
            "surface_id": "method::app/Console/Commands/CheckDeliveryAuditTable.php::App\\Console\\Commands\\CheckDeliveryAuditTable::handle",
            "fqmn": "App\\Console\\Commands\\CheckDeliveryAuditTable@handle",
            "file": "app/Console/Commands/CheckDeliveryAuditTable.php"
          },
          {
            "surface_id": "method::app/Console/Commands/FixOrderVendorPosRecords.php::App\\Console\\Commands\\FixOrderVendorPosRecords::handle",
            "fqmn": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
            "file": "app/Console/Commands/FixOrderVendorPosRecords.php"
          },
          {
            "surface_id": "method::app/Console/Commands/GenerateSitemap.php::App\\Console\\Commands\\GenerateSitemap::handle",
            "fqmn": "App\\Console\\Commands\\GenerateSitemap@handle",
            "file": "app/Console/Commands/GenerateSitemap.php"
          },
          {
            "surface_id": "method::app/Console/Commands/MonitorCulturalHealth.php::App\\Console\\Commands\\MonitorCulturalHealth::handle",
            "fqmn": "App\\Console\\Commands\\MonitorCulturalHealth@handle",
            "file": "app/Console/Commands/MonitorCulturalHealth.php"
          },
          {
            "surface_id": "method::app/Console/Commands/OcrAnalyticsReport.php::App\\Console\\Commands\\OcrAnalyticsReport::handle",
            "fqmn": "App\\Console\\Commands\\OcrAnalyticsReport@handle",
            "file": "app/Console/Commands/OcrAnalyticsReport.php"
          },
          {
            "surface_id": "method::app/Console/Commands/TestPoReferences.php::App\\Console\\Commands\\TestPoReferences::handle",
            "fqmn": "App\\Console\\Commands\\TestPoReferences@handle",
            "file": "app/Console/Commands/TestPoReferences.php"
          },
          {
            "surface_id": "method::app/Console/Commands/UpdateEmailTemplates.php::App\\Console\\Commands\\UpdateEmailTemplates::handle",
            "fqmn": "App\\Console\\Commands\\UpdateEmailTemplates@handle",
            "file": "app/Console/Commands/UpdateEmailTemplates.php"
          },
          {
            "surface_id": "method::app/Domains/Decisions/ExecutiveBriefService.php::App\\Domains\\Decisions\\ExecutiveBriefService::__construct",
            "fqmn": "App\\Domains\\Decisions\\ExecutiveBriefService@__construct",
            "file": "app/Domains/Decisions/ExecutiveBriefService.php"
          },
          {
            "surface_id": "method::app/Domains/Decisions/Services/ExecutiveBriefService.php::App\\Domains\\Decisions\\Services\\ExecutiveBriefService::__construct",
            "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@__construct",
            "file": "app/Domains/Decisions/Services/ExecutiveBriefService.php"
          },
          {
            "surface_id": "method::app/Domains/Metrics/Jobs/CleanupOldFactsJob.php::App\\Domains\\Metrics\\Jobs\\CleanupOldFactsJob::handle",
            "fqmn": "App\\Domains\\Metrics\\Jobs\\CleanupOldFactsJob@handle",
            "file": "app/Domains/Metrics/Jobs/CleanupOldFactsJob.php"
          },
          {
            "surface_id": "method::app/Domains/Metrics/Jobs/ComputeDailyFactsJob.php::App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob::__construct",
            "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob@__construct",
            "file": "app/Domains/Metrics/Jobs/ComputeDailyFactsJob.php"
          },
          {
            "surface_id": "method::app/Domains/Metrics/Jobs/ComputeDailyFactsJob.php::App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob::handle",
            "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob@handle",
            "file": "app/Domains/Metrics/Jobs/ComputeDailyFactsJob.php"
          },
          {
            "surface_id": "method::app/Domains/Metrics/Jobs/ComputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob::__construct",
            "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@__construct",
            "file": "app/Domains/Metrics/Jobs/ComputeFactsRangeJob.php"
          },
          {
            "surface_id": "method::app/Domains/Metrics/Jobs/ComputePredictiveDailyJob.php::App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob::__construct",
            "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct",
            "file": "app/Domains/Metrics/Jobs/ComputePredictiveDailyJob.php"
          },
          {
            "surface_id": "method::app/Domains/Metrics/Jobs/ComputePredictiveDailyJob.php::App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob::handle",
            "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@handle",
            "file": "app/Domains/Metrics/Jobs/ComputePredictiveDailyJob.php"
          },
          {
            "surface_id": "method::app/Domains/Metrics/Jobs/RecomputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob::__construct",
            "fqmn": "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@__construct",
            "file": "app/Domains/Metrics/Jobs/RecomputeFactsRangeJob.php"
          },
          {
            "surface_id": "method::app/Domains/Metrics/Jobs/RefreshTodayFactsJob.php::App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob::__construct",
            "fqmn": "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@__construct",
            "file": "app/Domains/Metrics/Jobs/RefreshTodayFactsJob.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@__construct",
            "file": "app/Http/Controllers/Api/BadgeController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@__construct",
            "file": "app/Http/Controllers/Api/BadgeTargetController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@__construct",
            "file": "app/Http/Controllers/Api/CompanyDirectoryController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\DigestController@__construct",
            "file": "app/Http/Controllers/Api/DigestController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@__construct",
            "file": "app/Http/Controllers/Api/DocumentVersionController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@__construct",
            "file": "app/Http/Controllers/Api/EmailTemplateController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/FeaturePreviewController.php::App\\Http\\Controllers\\Api\\FeaturePreviewController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\FeaturePreviewController@__construct",
            "file": "app/Http/Controllers/Api/FeaturePreviewController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@__construct",
            "file": "app/Http/Controllers/Api/Mobile/MobileRecognitionController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@__construct",
            "file": "app/Http/Controllers/Api/NotificationController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/OcrAnalyticsController.php::App\\Http\\Controllers\\Api\\OcrAnalyticsController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\OcrAnalyticsController@__construct",
            "file": "app/Http/Controllers/Api/OcrAnalyticsController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@__construct",
            "file": "app/Http/Controllers/Api/RecognitionController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::__construct",
            "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@__construct",
            "file": "app/Http/Controllers/Api/SubscriptionPlanChangeController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::update",
            "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@update",
            "file": "app/Http/Controllers/Api/SubscriptionPlanChangeController.php"
          },
          {
            "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::__construct",
            "fqmn": "App\\Http\\Controllers\\RecognitionController@__construct",
            "file": "app/Http/Controllers/RecognitionController.php"
          },
          {
            "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::authenticate",
            "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@authenticate",
            "file": "app/Http/Requests/Auth/LoginRequest.php"
          },
          {
            "surface_id": "method::app/Http/Requests/StoreTaskForDocumentRequest.php::App\\Http\\Requests\\StoreTaskForDocumentRequest::withValidator",
            "fqmn": "App\\Http\\Requests\\StoreTaskForDocumentRequest@withValidator",
            "file": "app/Http/Requests/StoreTaskForDocumentRequest.php"
          },
          {
            "surface_id": "method::app/Http/Requests/StoreTaskRequest.php::App\\Http\\Requests\\StoreTaskRequest::withValidator",
            "fqmn": "App\\Http\\Requests\\StoreTaskRequest@withValidator",
            "file": "app/Http/Requests/StoreTaskRequest.php"
          },
          {
            "surface_id": "method::app/Jobs/AccrueCogsForOrderDelivery.php::App\\Jobs\\AccrueCogsForOrderDelivery::__construct",
            "fqmn": "App\\Jobs\\AccrueCogsForOrderDelivery@__construct",
            "file": "app/Jobs/AccrueCogsForOrderDelivery.php"
          },
          {
            "surface_id": "method::app/Jobs/AutoCorrectUsersImport.php::App\\Jobs\\AutoCorrectUsersImport::__construct",
            "fqmn": "App\\Jobs\\AutoCorrectUsersImport@__construct",
            "file": "app/Jobs/AutoCorrectUsersImport.php"
          },
          {
            "surface_id": "method::app/Jobs/BackfillOrderAdvancePdfs.php::App\\Jobs\\BackfillOrderAdvancePdfs::__construct",
            "fqmn": "App\\Jobs\\BackfillOrderAdvancePdfs@__construct",
            "file": "app/Jobs/BackfillOrderAdvancePdfs.php"
          },
          {
            "surface_id": "method::app/Jobs/BackfillOrderAdvancePdfs.php::App\\Jobs\\BackfillOrderAdvancePdfs::handle",
            "fqmn": "App\\Jobs\\BackfillOrderAdvancePdfs@handle",
            "file": "app/Jobs/BackfillOrderAdvancePdfs.php"
          },
          {
            "surface_id": "method::app/Jobs/Billing/RecordGatewayFeeJob.php::App\\Jobs\\Billing\\RecordGatewayFeeJob::__construct",
            "fqmn": "App\\Jobs\\Billing\\RecordGatewayFeeJob@__construct",
            "file": "app/Jobs/Billing/RecordGatewayFeeJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Billing/RecordGatewayFeeJob.php::App\\Jobs\\Billing\\RecordGatewayFeeJob::handle",
            "fqmn": "App\\Jobs\\Billing\\RecordGatewayFeeJob@handle",
            "file": "app/Jobs/Billing/RecordGatewayFeeJob.php"
          },
          {
            "surface_id": "method::app/Jobs/BroadcastRecognitionCreated.php::App\\Jobs\\BroadcastRecognitionCreated::__construct",
            "fqmn": "App\\Jobs\\BroadcastRecognitionCreated@__construct",
            "file": "app/Jobs/BroadcastRecognitionCreated.php"
          },
          {
            "surface_id": "method::app/Jobs/ComputeCompanyMetricsRun.php::App\\Jobs\\ComputeCompanyMetricsRun::handle",
            "fqmn": "App\\Jobs\\ComputeCompanyMetricsRun@handle",
            "file": "app/Jobs/ComputeCompanyMetricsRun.php"
          },
          {
            "surface_id": "method::app/Jobs/ComputeControlRoomAiSummary.php::App\\Jobs\\ComputeControlRoomAiSummary::__construct",
            "fqmn": "App\\Jobs\\ComputeControlRoomAiSummary@__construct",
            "file": "app/Jobs/ComputeControlRoomAiSummary.php"
          },
          {
            "surface_id": "method::app/Jobs/ComputeWidgetSnapshots.php::App\\Jobs\\ComputeWidgetSnapshots::__construct",
            "fqmn": "App\\Jobs\\ComputeWidgetSnapshots@__construct",
            "file": "app/Jobs/ComputeWidgetSnapshots.php"
          },
          {
            "surface_id": "method::app/Jobs/ComputeWidgetSnapshots.php::App\\Jobs\\ComputeWidgetSnapshots::handle",
            "fqmn": "App\\Jobs\\ComputeWidgetSnapshots@handle",
            "file": "app/Jobs/ComputeWidgetSnapshots.php"
          },
          {
            "surface_id": "method::app/Jobs/ConsolidateUnbilledCharges.php::App\\Jobs\\ConsolidateUnbilledCharges::__construct",
            "fqmn": "App\\Jobs\\ConsolidateUnbilledCharges@__construct",
            "file": "app/Jobs/ConsolidateUnbilledCharges.php"
          },
          {
            "surface_id": "method::app/Jobs/ConsolidateUnbilledCharges.php::App\\Jobs\\ConsolidateUnbilledCharges::handle",
            "fqmn": "App\\Jobs\\ConsolidateUnbilledCharges@handle",
            "file": "app/Jobs/ConsolidateUnbilledCharges.php"
          },
          {
            "surface_id": "method::app/Jobs/CreateZohoBillForOrderSupplier.php::App\\Jobs\\CreateZohoBillForOrderSupplier::__construct",
            "fqmn": "App\\Jobs\\CreateZohoBillForOrderSupplier@__construct",
            "file": "app/Jobs/CreateZohoBillForOrderSupplier.php"
          },
          {
            "surface_id": "method::app/Jobs/CreateZohoInvoiceForOrder.php::App\\Jobs\\CreateZohoInvoiceForOrder::__construct",
            "fqmn": "App\\Jobs\\CreateZohoInvoiceForOrder@__construct",
            "file": "app/Jobs/CreateZohoInvoiceForOrder.php"
          },
          {
            "surface_id": "method::app/Jobs/CreateZohoPurchaseOrdersForOrder.php::App\\Jobs\\CreateZohoPurchaseOrdersForOrder::__construct",
            "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@__construct",
            "file": "app/Jobs/CreateZohoPurchaseOrdersForOrder.php"
          },
          {
            "surface_id": "method::app/Jobs/DeleteGroupJob.php::App\\Jobs\\DeleteGroupJob::__construct",
            "fqmn": "App\\Jobs\\DeleteGroupJob@__construct",
            "file": "app/Jobs/DeleteGroupJob.php"
          },
          {
            "surface_id": "method::app/Jobs/DeleteGroupJob.php::App\\Jobs\\DeleteGroupJob::handle",
            "fqmn": "App\\Jobs\\DeleteGroupJob@handle",
            "file": "app/Jobs/DeleteGroupJob.php"
          },
          {
            "surface_id": "method::app/Jobs/DispatchCompanyMetricsRun.php::App\\Jobs\\DispatchCompanyMetricsRun::handle",
            "fqmn": "App\\Jobs\\DispatchCompanyMetricsRun@handle",
            "file": "app/Jobs/DispatchCompanyMetricsRun.php"
          },
          {
            "surface_id": "method::app/Jobs/DispatchOcrJob.php::App\\Jobs\\DispatchOcrJob::__construct",
            "fqmn": "App\\Jobs\\DispatchOcrJob@__construct",
            "file": "app/Jobs/DispatchOcrJob.php"
          },
          {
            "surface_id": "method::app/Jobs/DispatchOcrJob.php::App\\Jobs\\DispatchOcrJob::handle",
            "fqmn": "App\\Jobs\\DispatchOcrJob@handle",
            "file": "app/Jobs/DispatchOcrJob.php"
          },
          {
            "surface_id": "method::app/Jobs/EnsureOrderZohoAdvance.php::App\\Jobs\\EnsureOrderZohoAdvance::__construct",
            "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@__construct",
            "file": "app/Jobs/EnsureOrderZohoAdvance.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateDigestBatch.php::App\\Jobs\\GenerateDigestBatch::__construct",
            "fqmn": "App\\Jobs\\GenerateDigestBatch@__construct",
            "file": "app/Jobs/GenerateDigestBatch.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateDigestBatch.php::App\\Jobs\\GenerateDigestBatch::failed",
            "fqmn": "App\\Jobs\\GenerateDigestBatch@failed",
            "file": "app/Jobs/GenerateDigestBatch.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateHelpBotReply.php::App\\Jobs\\GenerateHelpBotReply::__construct",
            "fqmn": "App\\Jobs\\GenerateHelpBotReply@__construct",
            "file": "app/Jobs/GenerateHelpBotReply.php"
          },
          {
            "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::__construct",
            "fqmn": "App\\Jobs\\GenerateReferralInsights@__construct",
            "file": "app/Jobs/GenerateReferralInsights.php"
          },
          {
            "surface_id": "method::app/Jobs/Middleware/EnsureFeature.php::App\\Jobs\\Middleware\\EnsureFeature::__construct",
            "fqmn": "App\\Jobs\\Middleware\\EnsureFeature@__construct",
            "file": "app/Jobs/Middleware/EnsureFeature.php"
          },
          {
            "surface_id": "method::app/Jobs/MonitorStuckCheckouts.php::App\\Jobs\\MonitorStuckCheckouts::failed",
            "fqmn": "App\\Jobs\\MonitorStuckCheckouts@failed",
            "file": "app/Jobs/MonitorStuckCheckouts.php"
          },
          {
            "surface_id": "method::app/Jobs/MonitorStuckOrders.php::App\\Jobs\\MonitorStuckOrders::__construct",
            "fqmn": "App\\Jobs\\MonitorStuckOrders@__construct",
            "file": "app/Jobs/MonitorStuckOrders.php"
          },
          {
            "surface_id": "method::app/Jobs/MonitorStuckOrders.php::App\\Jobs\\MonitorStuckOrders::failed",
            "fqmn": "App\\Jobs\\MonitorStuckOrders@failed",
            "file": "app/Jobs/MonitorStuckOrders.php"
          },
          {
            "surface_id": "method::app/Jobs/MonitorStuckOrders.php::App\\Jobs\\MonitorStuckOrders::handle",
            "fqmn": "App\\Jobs\\MonitorStuckOrders@handle",
            "file": "app/Jobs/MonitorStuckOrders.php"
          },
          {
            "surface_id": "method::app/Jobs/Occasions/ManagerHeadsUpJob.php::App\\Jobs\\Occasions\\ManagerHeadsUpJob::__construct",
            "fqmn": "App\\Jobs\\Occasions\\ManagerHeadsUpJob@__construct",
            "file": "app/Jobs/Occasions/ManagerHeadsUpJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Occasions/OccasionEmailSendJob.php::App\\Jobs\\Occasions\\OccasionEmailSendJob::__construct",
            "fqmn": "App\\Jobs\\Occasions\\OccasionEmailSendJob@__construct",
            "file": "app/Jobs/Occasions/OccasionEmailSendJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Occasions/OccasionEventDispatchJob.php::App\\Jobs\\Occasions\\OccasionEventDispatchJob::__construct",
            "fqmn": "App\\Jobs\\Occasions\\OccasionEventDispatchJob@__construct",
            "file": "app/Jobs/Occasions/OccasionEventDispatchJob.php"
          },
          {
            "surface_id": "method::app/Jobs/PostShippingExpenseToZoho.php::App\\Jobs\\PostShippingExpenseToZoho::__construct",
            "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@__construct",
            "file": "app/Jobs/PostShippingExpenseToZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/PrefetchPlanInvoice.php::App\\Jobs\\PrefetchPlanInvoice::__construct",
            "fqmn": "App\\Jobs\\PrefetchPlanInvoice@__construct",
            "file": "app/Jobs/PrefetchPlanInvoice.php"
          },
          {
            "surface_id": "method::app/Jobs/PrefetchWalletReceipt.php::App\\Jobs\\PrefetchWalletReceipt::__construct",
            "fqmn": "App\\Jobs\\PrefetchWalletReceipt@__construct",
            "file": "app/Jobs/PrefetchWalletReceipt.php"
          },
          {
            "surface_id": "method::app/Jobs/Privacy/GenerateDataExportJob.php::App\\Jobs\\Privacy\\GenerateDataExportJob::__construct",
            "fqmn": "App\\Jobs\\Privacy\\GenerateDataExportJob@__construct",
            "file": "app/Jobs/Privacy/GenerateDataExportJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessDunningRetryJob.php::App\\Jobs\\ProcessDunningRetryJob::__construct",
            "fqmn": "App\\Jobs\\ProcessDunningRetryJob@__construct",
            "file": "app/Jobs/ProcessDunningRetryJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessSmartInvoices.php::App\\Jobs\\ProcessSmartInvoices::__construct",
            "fqmn": "App\\Jobs\\ProcessSmartInvoices@__construct",
            "file": "app/Jobs/ProcessSmartInvoices.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessSmartInvoices.php::App\\Jobs\\ProcessSmartInvoices::handle",
            "fqmn": "App\\Jobs\\ProcessSmartInvoices@handle",
            "file": "app/Jobs/ProcessSmartInvoices.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessSupplierInvoiceOcr.php::App\\Jobs\\ProcessSupplierInvoiceOcr::__construct",
            "fqmn": "App\\Jobs\\ProcessSupplierInvoiceOcr@__construct",
            "file": "app/Jobs/ProcessSupplierInvoiceOcr.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessSupplierInvoiceOcr.php::App\\Jobs\\ProcessSupplierInvoiceOcr::failed",
            "fqmn": "App\\Jobs\\ProcessSupplierInvoiceOcr@failed",
            "file": "app/Jobs/ProcessSupplierInvoiceOcr.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessTapPlanPurchase.php::App\\Jobs\\ProcessTapPlanPurchase::__construct",
            "fqmn": "App\\Jobs\\ProcessTapPlanPurchase@__construct",
            "file": "app/Jobs/ProcessTapPlanPurchase.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessTapPlanUpgrade.php::App\\Jobs\\ProcessTapPlanUpgrade::__construct",
            "fqmn": "App\\Jobs\\ProcessTapPlanUpgrade@__construct",
            "file": "app/Jobs/ProcessTapPlanUpgrade.php"
          },
          {
            "surface_id": "method::app/Jobs/ProcessZohoOutboxEntry.php::App\\Jobs\\ProcessZohoOutboxEntry::__construct",
            "fqmn": "App\\Jobs\\ProcessZohoOutboxEntry@__construct",
            "file": "app/Jobs/ProcessZohoOutboxEntry.php"
          },
          {
            "surface_id": "method::app/Jobs/ReconcilePaymentForOrder.php::App\\Jobs\\ReconcilePaymentForOrder::__construct",
            "fqmn": "App\\Jobs\\ReconcilePaymentForOrder@__construct",
            "file": "app/Jobs/ReconcilePaymentForOrder.php"
          },
          {
            "surface_id": "method::app/Jobs/RecordOtoTopUpInZoho.php::App\\Jobs\\RecordOtoTopUpInZoho::__construct",
            "fqmn": "App\\Jobs\\RecordOtoTopUpInZoho@__construct",
            "file": "app/Jobs/RecordOtoTopUpInZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/RecordSalesCommissionInZoho.php::App\\Jobs\\RecordSalesCommissionInZoho::__construct",
            "fqmn": "App\\Jobs\\RecordSalesCommissionInZoho@__construct",
            "file": "app/Jobs/RecordSalesCommissionInZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/RetryTapWebhookJob.php::App\\Jobs\\RetryTapWebhookJob::__construct",
            "fqmn": "App\\Jobs\\RetryTapWebhookJob@__construct",
            "file": "app/Jobs/RetryTapWebhookJob.php"
          },
          {
            "surface_id": "method::app/Jobs/RetryTapWebhookJob.php::App\\Jobs\\RetryTapWebhookJob::handle",
            "fqmn": "App\\Jobs\\RetryTapWebhookJob@handle",
            "file": "app/Jobs/RetryTapWebhookJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ScanRemindersJob.php::App\\Jobs\\ScanRemindersJob::__construct",
            "fqmn": "App\\Jobs\\ScanRemindersJob@__construct",
            "file": "app/Jobs/ScanRemindersJob.php"
          },
          {
            "surface_id": "method::app/Jobs/ScanRemindersJob.php::App\\Jobs\\ScanRemindersJob::handle",
            "fqmn": "App\\Jobs\\ScanRemindersJob@handle",
            "file": "app/Jobs/ScanRemindersJob.php"
          },
          {
            "surface_id": "method::app/Jobs/SeedGuidedBadges.php::App\\Jobs\\SeedGuidedBadges::__construct",
            "fqmn": "App\\Jobs\\SeedGuidedBadges@__construct",
            "file": "app/Jobs/SeedGuidedBadges.php"
          },
          {
            "surface_id": "method::app/Jobs/SeedGuidedBadges.php::App\\Jobs\\SeedGuidedBadges::handle",
            "fqmn": "App\\Jobs\\SeedGuidedBadges@handle",
            "file": "app/Jobs/SeedGuidedBadges.php"
          },
          {
            "surface_id": "method::app/Jobs/SeedGuidedCompanyValues.php::App\\Jobs\\SeedGuidedCompanyValues::__construct",
            "fqmn": "App\\Jobs\\SeedGuidedCompanyValues@__construct",
            "file": "app/Jobs/SeedGuidedCompanyValues.php"
          },
          {
            "surface_id": "method::app/Jobs/SendApprovedDigests.php::App\\Jobs\\SendApprovedDigests::__construct",
            "fqmn": "App\\Jobs\\SendApprovedDigests@__construct",
            "file": "app/Jobs/SendApprovedDigests.php"
          },
          {
            "surface_id": "method::app/Jobs/SendApprovedDigests.php::App\\Jobs\\SendApprovedDigests::failed",
            "fqmn": "App\\Jobs\\SendApprovedDigests@failed",
            "file": "app/Jobs/SendApprovedDigests.php"
          },
          {
            "surface_id": "method::app/Jobs/SendDailyNotificationDigest.php::App\\Jobs\\SendDailyNotificationDigest::handle",
            "fqmn": "App\\Jobs\\SendDailyNotificationDigest@handle",
            "file": "app/Jobs/SendDailyNotificationDigest.php"
          },
          {
            "surface_id": "method::app/Jobs/SendOrderCompletionNotification.php::App\\Jobs\\SendOrderCompletionNotification::__construct",
            "fqmn": "App\\Jobs\\SendOrderCompletionNotification@__construct",
            "file": "app/Jobs/SendOrderCompletionNotification.php"
          },
          {
            "surface_id": "method::app/Jobs/SendOrderCompletionNotification.php::App\\Jobs\\SendOrderCompletionNotification::failed",
            "fqmn": "App\\Jobs\\SendOrderCompletionNotification@failed",
            "file": "app/Jobs/SendOrderCompletionNotification.php"
          },
          {
            "surface_id": "method::app/Jobs/SendReminderJob.php::App\\Jobs\\SendReminderJob::__construct",
            "fqmn": "App\\Jobs\\SendReminderJob@__construct",
            "file": "app/Jobs/SendReminderJob.php"
          },
          {
            "surface_id": "method::app/Jobs/SendZohoAdvance.php::App\\Jobs\\SendZohoAdvance::__construct",
            "fqmn": "App\\Jobs\\SendZohoAdvance@__construct",
            "file": "app/Jobs/SendZohoAdvance.php"
          },
          {
            "surface_id": "method::app/Jobs/SendZohoAdvance.php::App\\Jobs\\SendZohoAdvance::handle",
            "fqmn": "App\\Jobs\\SendZohoAdvance@handle",
            "file": "app/Jobs/SendZohoAdvance.php"
          },
          {
            "surface_id": "method::app/Jobs/SettleSupplierInvoicePayment.php::App\\Jobs\\SettleSupplierInvoicePayment::__construct",
            "fqmn": "App\\Jobs\\SettleSupplierInvoicePayment@__construct",
            "file": "app/Jobs/SettleSupplierInvoicePayment.php"
          },
          {
            "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::__construct",
            "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@__construct",
            "file": "app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php"
          },
          {
            "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::initProgress",
            "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@initProgress",
            "file": "app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php"
          },
          {
            "surface_id": "method::app/Jobs/Subscriptions/AutoChargeSubscriptionsJob.php::App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob::handle",
            "fqmn": "App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob@handle",
            "file": "app/Jobs/Subscriptions/AutoChargeSubscriptionsJob.php"
          },
          {
            "surface_id": "method::app/Jobs/Succession/GenerateSuccessionCurriculum.php::App\\Jobs\\Succession\\GenerateSuccessionCurriculum::__construct",
            "fqmn": "App\\Jobs\\Succession\\GenerateSuccessionCurriculum@__construct",
            "file": "app/Jobs/Succession/GenerateSuccessionCurriculum.php"
          },
          {
            "surface_id": "method::app/Jobs/SyncProductToZoho.php::App\\Jobs\\SyncProductToZoho::__construct",
            "fqmn": "App\\Jobs\\SyncProductToZoho@__construct",
            "file": "app/Jobs/SyncProductToZoho.php"
          },
          {
            "surface_id": "method::app/Jobs/UploadZohoBillAttachment.php::App\\Jobs\\UploadZohoBillAttachment::__construct",
            "fqmn": "App\\Jobs\\UploadZohoBillAttachment@__construct",
            "file": "app/Jobs/UploadZohoBillAttachment.php"
          },
          {
            "surface_id": "method::app/Jobs/WarmCompanyKpiOkr.php::App\\Jobs\\WarmCompanyKpiOkr::__construct",
            "fqmn": "App\\Jobs\\WarmCompanyKpiOkr@__construct",
            "file": "app/Jobs/WarmCompanyKpiOkr.php"
          },
          {
            "surface_id": "method::app/Jobs/WarmCompanyKpiOkr.php::App\\Jobs\\WarmCompanyKpiOkr::handle",
            "fqmn": "App\\Jobs\\WarmCompanyKpiOkr@handle",
            "file": "app/Jobs/WarmCompanyKpiOkr.php"
          },
          {
            "surface_id": "method::app/Jobs/WarmKpiCacheForDay.php::App\\Jobs\\WarmKpiCacheForDay::__construct",
            "fqmn": "App\\Jobs\\WarmKpiCacheForDay@__construct",
            "file": "app/Jobs/WarmKpiCacheForDay.php"
          },
          {
            "surface_id": "method::app/Jobs/WarmKpiCacheForDay.php::App\\Jobs\\WarmKpiCacheForDay::handle",
            "fqmn": "App\\Jobs\\WarmKpiCacheForDay@handle",
            "file": "app/Jobs/WarmKpiCacheForDay.php"
          },
          {
            "surface_id": "method::app/Jobs/WarmKpiOkrCache.php::App\\Jobs\\WarmKpiOkrCache::__construct",
            "fqmn": "App\\Jobs\\WarmKpiOkrCache@__construct",
            "file": "app/Jobs/WarmKpiOkrCache.php"
          },
          {
            "surface_id": "method::app/Listeners/Billing/EnforceHighWaterMark.php::App\\Listeners\\Billing\\EnforceHighWaterMark::__construct",
            "fqmn": "App\\Listeners\\Billing\\EnforceHighWaterMark@__construct",
            "file": "app/Listeners/Billing/EnforceHighWaterMark.php"
          },
          {
            "surface_id": "method::app/Listeners/Billing/EnforceHighWaterMark.php::App\\Listeners\\Billing\\EnforceHighWaterMark::handle",
            "fqmn": "App\\Listeners\\Billing\\EnforceHighWaterMark@handle",
            "file": "app/Listeners/Billing/EnforceHighWaterMark.php"
          },
          {
            "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::__construct",
            "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@__construct",
            "file": "app/Listeners/BroadcastDatabaseNotification.php"
          },
          {
            "surface_id": "method::app/Listeners/DispatchReferralInsights.php::App\\Listeners\\DispatchReferralInsights::handle",
            "fqmn": "App\\Listeners\\DispatchReferralInsights@handle",
            "file": "app/Listeners/DispatchReferralInsights.php"
          },
          {
            "surface_id": "method::app/Listeners/Rewards/FreezePointsOnCompanyCancellation.php::App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation::__construct",
            "fqmn": "App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation@__construct",
            "file": "app/Listeners/Rewards/FreezePointsOnCompanyCancellation.php"
          },
          {
            "surface_id": "method::app/Listeners/SendRecognitionNotifications.php::App\\Listeners\\SendRecognitionNotifications::handle",
            "fqmn": "App\\Listeners\\SendRecognitionNotifications@handle",
            "file": "app/Listeners/SendRecognitionNotifications.php"
          },
          {
            "surface_id": "method::app/Listeners/SendRecognitionNotifications.php::App\\Listeners\\SendRecognitionNotifications::resetCache",
            "fqmn": "App\\Listeners\\SendRecognitionNotifications@resetCache",
            "file": "app/Listeners/SendRecognitionNotifications.php"
          },
          {
            "surface_id": "method::app/Listeners/SuspendAutoChargeOnDispute.php::App\\Listeners\\SuspendAutoChargeOnDispute::__construct",
            "fqmn": "App\\Listeners\\SuspendAutoChargeOnDispute@__construct",
            "file": "app/Listeners/SuspendAutoChargeOnDispute.php"
          },
          {
            "surface_id": "method::app/Listeners/UpdateDocumentFieldIndex.php::App\\Listeners\\UpdateDocumentFieldIndex::failed",
            "fqmn": "App\\Listeners\\UpdateDocumentFieldIndex@failed",
            "file": "app/Listeners/UpdateDocumentFieldIndex.php"
          },
          {
            "surface_id": "method::app/Models/Conversation.php::App\\Models\\Conversation::updateConversationWithMessage",
            "fqmn": "App\\Models\\Conversation@updateConversationWithMessage",
            "file": "app/Models/Conversation.php"
          },
          {
            "surface_id": "method::app/Models/DocumentFieldIndex.php::App\\Models\\DocumentFieldIndex::removeIndex",
            "fqmn": "App\\Models\\DocumentFieldIndex@removeIndex",
            "file": "app/Models/DocumentFieldIndex.php"
          },
          {
            "surface_id": "method::app/Services/Ai/ActionOrchestrator.php::App\\Services\\Ai\\ActionOrchestrator::__construct",
            "fqmn": "App\\Services\\Ai\\ActionOrchestrator@__construct",
            "file": "app/Services/Ai/ActionOrchestrator.php"
          },
          {
            "surface_id": "method::app/Services/Ai/ResolvedAiAction.php::App\\Services\\Ai\\ResolvedAiAction::__construct",
            "fqmn": "App\\Services\\Ai\\ResolvedAiAction@__construct",
            "file": "app/Services/Ai/ResolvedAiAction.php"
          },
          {
            "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::__construct",
            "fqmn": "App\\Services\\AiClient@__construct",
            "file": "app/Services/AiClient.php"
          },
          {
            "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemResult.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemResult::__construct",
            "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@__construct",
            "file": "app/Services/Automation/Actions/PurchaseStoreItemResult.php"
          },
          {
            "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::handleEvent",
            "fqmn": "App\\Services\\AutomationEngine@handleEvent",
            "file": "app/Services/AutomationEngine.php"
          },
          {
            "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::__construct",
            "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@__construct",
            "file": "app/Services/Awareness/FairnessAnalyticsService.php"
          },
          {
            "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::__construct",
            "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@__construct",
            "file": "app/Services/Awareness/MessageIntensity/IntensityScore.php"
          },
          {
            "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::createDefaultBadges",
            "fqmn": "App\\Services\\BadgeService@createDefaultBadges",
            "file": "app/Services/BadgeService.php"
          },
          {
            "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::updateAllTargetProgress",
            "fqmn": "App\\Services\\BadgeTargetService@updateAllTargetProgress",
            "file": "app/Services/BadgeTargetService.php"
          },
          {
            "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::clearCache",
            "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
            "file": "app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php"
          },
          {
            "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::issueDowngradeCredit",
            "fqmn": "App\\Services\\CreditLedgerService@issueDowngradeCredit",
            "file": "app/Services/CreditLedgerService.php"
          },
          {
            "surface_id": "method::app/Services/Dashboard/CulturePulseFeedComposer.php::App\\Services\\Dashboard\\CulturePulseFeedComposer::__construct",
            "fqmn": "App\\Services\\Dashboard\\CulturePulseFeedComposer@__construct",
            "file": "app/Services/Dashboard/CulturePulseFeedComposer.php"
          },
          {
            "surface_id": "method::app/Services/Digest/Sources/DigestSourceOrchestrator.php::App\\Services\\Digest\\Sources\\DigestSourceOrchestrator::__construct",
            "fqmn": "App\\Services\\Digest\\Sources\\DigestSourceOrchestrator@__construct",
            "file": "app/Services/Digest/Sources/DigestSourceOrchestrator.php"
          },
          {
            "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::__construct",
            "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@__construct",
            "file": "app/Services/Digest/Sources/SourceBundle.php"
          },
          {
            "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::__construct",
            "fqmn": "App\\Services\\DigestGenerationService@__construct",
            "file": "app/Services/DigestGenerationService.php"
          },
          {
            "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::processScheduledAttempt",
            "fqmn": "App\\Services\\DunningService@processScheduledAttempt",
            "file": "app/Services/DunningService.php"
          },
          {
            "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::resumeMultiSubscriptionDunning",
            "fqmn": "App\\Services\\DunningService@resumeMultiSubscriptionDunning",
            "file": "app/Services/DunningService.php"
          },
          {
            "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::runAttempt",
            "fqmn": "App\\Services\\DunningService@runAttempt",
            "file": "app/Services/DunningService.php"
          },
          {
            "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::scheduleRetry",
            "fqmn": "App\\Services\\DunningService@scheduleRetry",
            "file": "app/Services/DunningService.php"
          },
          {
            "surface_id": "method::app/Services/Email/CompanyMailer.php::App\\Services\\Email\\CompanyMailer::__construct",
            "fqmn": "App\\Services\\Email\\CompanyMailer@__construct",
            "file": "app/Services/Email/CompanyMailer.php"
          },
          {
            "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::validateTemplateContent",
            "fqmn": "App\\Services\\EmailTemplateService@validateTemplateContent",
            "file": "app/Services/EmailTemplateService.php"
          },
          {
            "surface_id": "method::app/Services/ExecutiveOverviewService.php::App\\Services\\ExecutiveOverviewService::__construct",
            "fqmn": "App\\Services\\ExecutiveOverviewService@__construct",
            "file": "app/Services/ExecutiveOverviewService.php"
          },
          {
            "surface_id": "method::app/Services/FcmService.php::App\\Services\\FcmService::__construct",
            "fqmn": "App\\Services\\FcmService@__construct",
            "file": "app/Services/FcmService.php"
          },
          {
            "surface_id": "method::app/Services/FeatureGateService.php::App\\Services\\FeatureGateService::__construct",
            "fqmn": "App\\Services\\FeatureGateService@__construct",
            "file": "app/Services/FeatureGateService.php"
          },
          {
            "surface_id": "method::app/Services/ForecastService.php::App\\Services\\ForecastService::__construct",
            "fqmn": "App\\Services\\ForecastService@__construct",
            "file": "app/Services/ForecastService.php"
          },
          {
            "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::__construct",
            "fqmn": "App\\Services\\GPTService@__construct",
            "file": "app/Services/GPTService.php"
          },
          {
            "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::__construct",
            "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@__construct",
            "file": "app/Services/HireReadiness/DTO/PeerSet.php"
          },
          {
            "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::__construct",
            "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@__construct",
            "file": "app/Services/HireReadiness/DTO/TeamMetric.php"
          },
          {
            "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::__construct",
            "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@__construct",
            "file": "app/Services/HireReadiness/DTO/TeamSignalSnapshot.php"
          },
          {
            "surface_id": "method::app/Services/HireReadiness/HireOutcomeTracker.php::App\\Services\\HireReadiness\\HireOutcomeTracker::recordResponse",
            "fqmn": "App\\Services\\HireReadiness\\HireOutcomeTracker@recordResponse",
            "file": "app/Services/HireReadiness/HireOutcomeTracker.php"
          },
          {
            "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::createApprovalChain",
            "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@createApprovalChain",
            "file": "app/Services/HireReadiness/HireRequestApprover.php"
          },
          {
            "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::upsertDepartmentKnowledge",
            "fqmn": "App\\Services\\KnowledgeService@upsertDepartmentKnowledge",
            "file": "app/Services/KnowledgeService.php"
          },
          {
            "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::upsertNameKnowledge",
            "fqmn": "App\\Services\\KnowledgeService@upsertNameKnowledge",
            "file": "app/Services/KnowledgeService.php"
          },
          {
            "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::createDefaultLeaderboards",
            "fqmn": "App\\Services\\LeaderboardService@createDefaultLeaderboards",
            "file": "app/Services/LeaderboardService.php"
          },
          {
            "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::updateLeaderboardSettings",
            "fqmn": "App\\Services\\LeaderboardService@updateLeaderboardSettings",
            "file": "app/Services/LeaderboardService.php"
          },
          {
            "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::saveProfile",
            "fqmn": "App\\Services\\MappingService@saveProfile",
            "file": "app/Services/MappingService.php"
          },
          {
            "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::clearCache",
            "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@clearCache",
            "file": "app/Services/Metrics/WidgetMetadataRegistry.php"
          },
          {
            "surface_id": "method::app/Services/Occasions/EmailSenders/GmailSender.php::App\\Services\\Occasions\\EmailSenders\\GmailSender::sendTest",
            "fqmn": "App\\Services\\Occasions\\EmailSenders\\GmailSender@sendTest",
            "file": "app/Services/Occasions/EmailSenders/GmailSender.php"
          },
          {
            "surface_id": "method::app/Services/Occasions/EmailSenders/OutlookSender.php::App\\Services\\Occasions\\EmailSenders\\OutlookSender::sendTest",
            "fqmn": "App\\Services\\Occasions\\EmailSenders\\OutlookSender@sendTest",
            "file": "app/Services/Occasions/EmailSenders/OutlookSender.php"
          },
          {
            "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::__construct",
            "fqmn": "App\\Services\\OcrClient@__construct",
            "file": "app/Services/OcrClient.php"
          },
          {
            "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::__construct",
            "fqmn": "App\\Services\\OrderCompletionService@__construct",
            "file": "app/Services/OrderCompletionService.php"
          },
          {
            "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::__construct",
            "fqmn": "App\\Services\\OtoClient@__construct",
            "file": "app/Services/OtoClient.php"
          },
          {
            "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::allocateProofToBatch",
            "fqmn": "App\\Services\\PaymentAllocator@allocateProofToBatch",
            "file": "app/Services/PaymentAllocator.php"
          },
          {
            "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::recordProof",
            "fqmn": "App\\Services\\PaymentAllocator@recordProof",
            "file": "app/Services/PaymentAllocator.php"
          },
          {
            "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::unallocate",
            "fqmn": "App\\Services\\PaymentAllocator@unallocate",
            "file": "app/Services/PaymentAllocator.php"
          },
          {
            "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::__construct",
            "fqmn": "App\\Services\\PaymentGateway\\TapGateway@__construct",
            "file": "app/Services/PaymentGateway/TapGateway.php"
          },
          {
            "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::__construct",
            "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@__construct",
            "file": "app/Services/PaymentGateway/TapRefundException.php"
          },
          {
            "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::logPaymentError",
            "fqmn": "App\\Services\\PaymentLogger@logPaymentError",
            "file": "app/Services/PaymentLogger.php"
          },
          {
            "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::__construct",
            "fqmn": "App\\Services\\PaymentProcessingCoordinator@__construct",
            "file": "app/Services/PaymentProcessingCoordinator.php"
          },
          {
            "surface_id": "method::app/Services/Predictive/ScenarioSimulator.php::App\\Services\\Predictive\\ScenarioSimulator::__construct",
            "fqmn": "App\\Services\\Predictive\\ScenarioSimulator@__construct",
            "file": "app/Services/Predictive/ScenarioSimulator.php"
          },
          {
            "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::customizeTarget",
            "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@customizeTarget",
            "file": "app/Services/Promotion/GrowthBlueprintService.php"
          },
          {
            "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::ratifyTarget",
            "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@ratifyTarget",
            "file": "app/Services/Promotion/GrowthBlueprintService.php"
          },
          {
            "surface_id": "method::app/Services/Promotion/PromotionAuditLogger.php::App\\Services\\Promotion\\PromotionAuditLogger::log",
            "fqmn": "App\\Services\\Promotion\\PromotionAuditLogger@log",
            "file": "app/Services/Promotion/PromotionAuditLogger.php"
          },
          {
            "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::createCycle",
            "fqmn": "App\\Services\\Promotion\\PromotionCycleService@createCycle",
            "file": "app/Services/Promotion/PromotionCycleService.php"
          },
          {
            "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::finalizeCycle",
            "fqmn": "App\\Services\\Promotion\\PromotionCycleService@finalizeCycle",
            "file": "app/Services/Promotion/PromotionCycleService.php"
          },
          {
            "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::__construct",
            "fqmn": "App\\Services\\PushService@__construct",
            "file": "app/Services/PushService.php"
          },
          {
            "surface_id": "method::app/Services/RaiseNotifier.php::App\\Services\\RaiseNotifier::sendApproved",
            "fqmn": "App\\Services\\RaiseNotifier@sendApproved",
            "file": "app/Services/RaiseNotifier.php"
          },
          {
            "surface_id": "method::app/Services/RaiseNotifier.php::App\\Services\\RaiseNotifier::sendDeclined",
            "fqmn": "App\\Services\\RaiseNotifier@sendDeclined",
            "file": "app/Services/RaiseNotifier.php"
          },
          {
            "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::__construct",
            "fqmn": "App\\Services\\RecognitionService@__construct",
            "file": "app/Services/RecognitionService.php"
          },
          {
            "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::addComment",
            "fqmn": "App\\Services\\RecognitionService@addComment",
            "file": "app/Services/RecognitionService.php"
          },
          {
            "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::addReaction",
            "fqmn": "App\\Services\\RecognitionService@addReaction",
            "file": "app/Services/RecognitionService.php"
          },
          {
            "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::removeReaction",
            "fqmn": "App\\Services\\RecognitionService@removeReaction",
            "file": "app/Services/RecognitionService.php"
          },
          {
            "surface_id": "method::app/Services/RewardNotifier.php::App\\Services\\RewardNotifier::sendApprovalRequest",
            "fqmn": "App\\Services\\RewardNotifier@sendApprovalRequest",
            "file": "app/Services/RewardNotifier.php"
          },
          {
            "surface_id": "method::app/Services/RewardNotifier.php::App\\Services\\RewardNotifier::sendWinnerNotice",
            "fqmn": "App\\Services\\RewardNotifier@sendWinnerNotice",
            "file": "app/Services/RewardNotifier.php"
          },
          {
            "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::__construct",
            "fqmn": "App\\Services\\SalesCommissionService@__construct",
            "file": "app/Services/SalesCommissionService.php"
          },
          {
            "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::approveCommission",
            "fqmn": "App\\Services\\SalesCommissionService@approveCommission",
            "file": "app/Services/SalesCommissionService.php"
          },
          {
            "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::markCommissionAsPaid",
            "fqmn": "App\\Services\\SalesCommissionService@markCommissionAsPaid",
            "file": "app/Services/SalesCommissionService.php"
          },
          {
            "surface_id": "method::app/Services/ShipmentService.php::App\\Services\\ShipmentService::__construct",
            "fqmn": "App\\Services\\ShipmentService@__construct",
            "file": "app/Services/ShipmentService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::advanceGraceDays",
            "fqmn": "App\\Services\\SubscriptionStateService@advanceGraceDays",
            "file": "app/Services/SubscriptionStateService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markActive",
            "fqmn": "App\\Services\\SubscriptionStateService@markActive",
            "file": "app/Services/SubscriptionStateService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markPastDue",
            "fqmn": "App\\Services\\SubscriptionStateService@markPastDue",
            "file": "app/Services/SubscriptionStateService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markSuspended",
            "fqmn": "App\\Services\\SubscriptionStateService@markSuspended",
            "file": "app/Services/SubscriptionStateService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::scheduleRetryHours",
            "fqmn": "App\\Services\\SubscriptionStateService@scheduleRetryHours",
            "file": "app/Services/SubscriptionStateService.php"
          },
          {
            "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::updateById",
            "fqmn": "App\\Services\\SubscriptionStateService@updateById",
            "file": "app/Services/SubscriptionStateService.php"
          },
          {
            "surface_id": "method::app/Services/Succession/AmendmentService.php::App\\Services\\Succession\\AmendmentService::reopen",
            "fqmn": "App\\Services\\Succession\\AmendmentService@reopen",
            "file": "app/Services/Succession/AmendmentService.php"
          },
          {
            "surface_id": "method::app/Services/Succession/BlindEmployeeSurveyService.php::App\\Services\\Succession\\BlindEmployeeSurveyService::dispatch",
            "fqmn": "App\\Services\\Succession\\BlindEmployeeSurveyService@dispatch",
            "file": "app/Services/Succession/BlindEmployeeSurveyService.php"
          },
          {
            "surface_id": "method::app/Services/Succession/Calculators/ExecutionIndexCalculator.php::App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator::__construct",
            "fqmn": "App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator@__construct",
            "file": "app/Services/Succession/Calculators/ExecutionIndexCalculator.php"
          },
          {
            "surface_id": "method::app/Services/Succession/Calculators/TimeLockCalculator.php::App\\Services\\Succession\\Calculators\\TimeLockCalculator::__construct",
            "fqmn": "App\\Services\\Succession\\Calculators\\TimeLockCalculator@__construct",
            "file": "app/Services/Succession/Calculators/TimeLockCalculator.php"
          },
          {
            "surface_id": "method::app/Services/Succession/OverrideLogger.php::App\\Services\\Succession\\OverrideLogger::bypassAlgorithm",
            "fqmn": "App\\Services\\Succession\\OverrideLogger@bypassAlgorithm",
            "file": "app/Services/Succession/OverrideLogger.php"
          },
          {
            "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::__construct",
            "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@__construct",
            "file": "app/Services/Succession/Providers/DatabaseValueDistributionProvider.php"
          },
          {
            "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::processInvoiceReview",
            "fqmn": "App\\Services\\SupplierInvoiceReviewService@processInvoiceReview",
            "file": "app/Services/SupplierInvoiceReviewService.php"
          },
          {
            "surface_id": "method::app/Services/TalentInsightsService.php::App\\Services\\TalentInsightsService::__construct",
            "fqmn": "App\\Services\\TalentInsightsService@__construct",
            "file": "app/Services/TalentInsightsService.php"
          },
          {
            "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::__construct",
            "fqmn": "App\\Services\\TapClient@__construct",
            "file": "app/Services/TapClient.php"
          },
          {
            "surface_id": "method::app/Services/TurnstileService.php::App\\Services\\TurnstileService::__construct",
            "fqmn": "App\\Services\\TurnstileService@__construct",
            "file": "app/Services/TurnstileService.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/Analytics/DiDAnalysisWidget.php::App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget::__construct",
            "fqmn": "App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@__construct",
            "file": "app/Services/Widgets/Analytics/DiDAnalysisWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/Analytics/GiniCoefficientWidget.php::App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget::__construct",
            "fqmn": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@__construct",
            "file": "app/Services/Widgets/Analytics/GiniCoefficientWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/Analytics/GiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\GiverCoverageWidget::__construct",
            "fqmn": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@__construct",
            "file": "app/Services/Widgets/Analytics/GiverCoverageWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/Analytics/ReceiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget::__construct",
            "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@__construct",
            "file": "app/Services/Widgets/Analytics/ReceiverCoverageWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/Analytics/ReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\ReciprocityWidget::__construct",
            "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@__construct",
            "file": "app/Services/Widgets/Analytics/ReciprocityWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/Analytics/SilentDaysMapWidget.php::App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget::__construct",
            "fqmn": "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@__construct",
            "file": "app/Services/Widgets/Analytics/SilentDaysMapWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/Analytics/Top10ShareWidget.php::App\\Services\\Widgets\\Analytics\\Top10ShareWidget::__construct",
            "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@__construct",
            "file": "app/Services/Widgets/Analytics/Top10ShareWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/Analytics/UnderRecognizedHighProducersWidget.php::App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget::__construct",
            "fqmn": "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@__construct",
            "file": "app/Services/Widgets/Analytics/UnderRecognizedHighProducersWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::clearSnapshotCache",
            "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@clearSnapshotCache",
            "file": "app/Services/Widgets/BaseSnapshotWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::warmSnapshotCache",
            "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@warmSnapshotCache",
            "file": "app/Services/Widgets/BaseSnapshotWidget.php"
          },
          {
            "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::clearResolveCache",
            "fqmn": "App\\Services\\Widgets\\BaseWidget@clearResolveCache",
            "file": "app/Services/Widgets/BaseWidget.php"
          },
          {
            "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::__construct",
            "fqmn": "App\\Services\\ZeptoMailService@__construct",
            "file": "app/Services/ZeptoMailService.php"
          },
          {
            "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::process",
            "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@process",
            "file": "app/Services/Zoho/ZohoOutboxDispatcher.php"
          },
          {
            "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::__construct",
            "fqmn": "App\\Services\\ZohoBooksService@__construct",
            "file": "app/Services/ZohoBooksService.php"
          },
          {
            "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureCompanyConfiguredId",
            "fqmn": "App\\Services\\ZohoBooksService@ensureCompanyConfiguredId",
            "file": "app/Services/ZohoBooksService.php"
          },
          {
            "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::markPurchaseOrderAsIssued",
            "fqmn": "App\\Services\\ZohoBooksService@markPurchaseOrderAsIssued",
            "file": "app/Services/ZohoBooksService.php"
          },
          {
            "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::voidCreditNote",
            "fqmn": "App\\Services\\ZohoBooksService@voidCreditNote",
            "file": "app/Services/ZohoBooksService.php"
          },
          {
            "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::__construct",
            "fqmn": "App\\Services\\ZohoIntegrationMonitor@__construct",
            "file": "app/Services/ZohoIntegrationMonitor.php"
          },
          {
            "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::performHealthCheck",
            "fqmn": "App\\Services\\ZohoIntegrationMonitor@performHealthCheck",
            "file": "app/Services/ZohoIntegrationMonitor.php"
          },
          {
            "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::clearAllCachedContexts",
            "fqmn": "App\\Support\\CompanyAccess@clearAllCachedContexts",
            "file": "app/Support/CompanyAccess.php"
          },
          {
            "surface_id": "method::app/Support/ControlRoom/WidgetRenderTracker.php::App\\Support\\ControlRoom\\WidgetRenderTracker::reset",
            "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@reset",
            "file": "app/Support/ControlRoom/WidgetRenderTracker.php"
          },
          {
            "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::activate",
            "fqmn": "App\\Support\\FeaturePreview@activate",
            "file": "app/Support/FeaturePreview.php"
          },
          {
            "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::put",
            "fqmn": "App\\Support\\HelpMemory@put",
            "file": "app/Support/HelpMemory.php"
          },
          {
            "surface_id": "method::app/Support/HtmlSanitizer.php::App\\Support\\HtmlSanitizer::resetForTesting",
            "fqmn": "App\\Support\\HtmlSanitizer@resetForTesting",
            "file": "app/Support/HtmlSanitizer.php"
          },
          {
            "surface_id": "method::app/Support/JobsAccess.php::App\\Support\\JobsAccess::ensure",
            "fqmn": "App\\Support\\JobsAccess@ensure",
            "file": "app/Support/JobsAccess.php"
          },
          {
            "surface_id": "method::app/Support/LandingResolver.php::App\\Support\\LandingResolver::setActiveCompanyContext",
            "fqmn": "App\\Support\\LandingResolver@setActiveCompanyContext",
            "file": "app/Support/LandingResolver.php"
          },
          {
            "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::assertLogged",
            "fqmn": "App\\Support\\Logging\\LogFake@assertLogged",
            "file": "app/Support/Logging/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::assertNotLogged",
            "fqmn": "App\\Support\\Logging\\LogFake@assertNotLogged",
            "file": "app/Support/Logging/LogFake.php"
          },
          {
            "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::__construct",
            "fqmn": "App\\Support\\Media\\SupplierPathGenerator@__construct",
            "file": "app/Support/Media/SupplierPathGenerator.php"
          },
          {
            "surface_id": "method::app/Support/MetricContract.php::App\\Support\\MetricContract::validate",
            "fqmn": "App\\Support\\MetricContract@validate",
            "file": "app/Support/MetricContract.php"
          },
          {
            "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persist",
            "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persist",
            "file": "app/Support/PlanVersions/PlanVersionFeatureComposer.php"
          },
          {
            "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persistAcrossIntervals",
            "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persistAcrossIntervals",
            "file": "app/Support/PlanVersions/PlanVersionFeatureComposer.php"
          },
          {
            "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persistFromBooleans",
            "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persistFromBooleans",
            "file": "app/Support/PlanVersions/PlanVersionFeatureComposer.php"
          },
          {
            "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::sync",
            "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@sync",
            "file": "app/Support/PlanVersions/PlanVersionSynchronizer.php"
          },
          {
            "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::ensure",
            "fqmn": "App\\Support\\RefreshmentsAccess@ensure",
            "file": "app/Support/RefreshmentsAccess.php"
          },
          {
            "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::__construct",
            "fqmn": "App\\Support\\ResettingUserQuery@__construct",
            "file": "app/Support/ResettingUserQuery.php"
          },
          {
            "surface_id": "method::app/Support/StoreAccess.php::App\\Support\\StoreAccess::ensure",
            "fqmn": "App\\Support\\StoreAccess@ensure",
            "file": "app/Support/StoreAccess.php"
          },
          {
            "surface_id": "route::routes/web.php::get::/' . $__panelSlug . '/login::closure",
            "fqmn": "route::routes/web.php::get::/' . $__panelSlug . '/login::closure",
            "file": "routes/web.php"
          },
          {
            "surface_id": "route::routes/web.php::get::/dev/cr::App\\Filament\\Employer\\Pages\\ControlRoom::__invoke",
            "fqmn": "App\\Filament\\Employer\\Pages\\ControlRoom@__invoke",
            "file": "routes/web.php"
          },
          {
            "surface_id": "route::routes/web.php::post::/employer/plan-checkout/one-click-upgrade::App\\Http\\Controllers\\Employer\\PlanCheckoutController::__invoke",
            "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@__invoke",
            "file": "routes/web.php"
          },
          {
            "surface_id": "route::routes/web.php::post::/employer/subscriptions/{subscription}/apply-downgrade::App\\Http\\Controllers\\Employer\\SubscriptionController::__invoke",
            "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@__invoke",
            "file": "routes/web.php"
          }
        ]
      },
      "FRAMEWORK_IMPLICIT_ONLY": {
        "count": 1,
        "surfaces": [
          {
            "surface_id": "method::app/Livewire/ControlRoomHeader.php::App\\Livewire\\ControlRoomHeader::periodDaysForKey",
            "fqmn": "App\\Livewire\\ControlRoomHeader@periodDaysForKey",
            "file": "app/Livewire/ControlRoomHeader.php"
          }
        ]
      }
    }
  },
  "dead_code_triage": {
    "delete": [
      {
        "surface_id": "method::app/Domains/Decisions/Services/ExecutiveBriefService.php::App\\Domains\\Decisions\\Services\\ExecutiveBriefService::__construct",
        "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Decisions/Services/ExecutiveBriefService.php::App\\Domains\\Decisions\\Services\\ExecutiveBriefService::generateWeekly",
        "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@generateWeekly",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::businessEndUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@businessEndUtc",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::businessStartUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@businessStartUtc",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::endUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@endUtc",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::isWeekendRiyadh",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@isWeekendRiyadh",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::riyadhDay",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@riyadhDay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::startUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@startUtc",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::todayRiyadh",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::isCanonical",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@isCanonical",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::normalize",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@normalize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::toDays",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@toDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/RedisLock.php::App\\Domains\\Metrics\\Support\\RedisLock::acquire",
        "fqmn": "App\\Domains\\Metrics\\Support\\RedisLock@acquire",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Ai/ActionOrchestrator.php::App\\Services\\Ai\\ActionOrchestrator::__construct",
        "fqmn": "App\\Services\\Ai\\ActionOrchestrator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Ai/ActionOrchestrator.php::App\\Services\\Ai\\ActionOrchestrator::execute",
        "fqmn": "App\\Services\\Ai\\ActionOrchestrator@execute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Ai/AiActionResolver.php::App\\Services\\Ai\\AiActionResolver::resolve",
        "fqmn": "App\\Services\\Ai\\AiActionResolver@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Ai/AiActionResolver.php::App\\Services\\Ai\\AiActionResolver::resolveMany",
        "fqmn": "App\\Services\\Ai\\AiActionResolver@resolveMany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Ai/ResolvedAiAction.php::App\\Services\\Ai\\ResolvedAiAction::__construct",
        "fqmn": "App\\Services\\Ai\\ResolvedAiAction@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Ai/ResolvedAiAction.php::App\\Services\\Ai\\ResolvedAiAction::toArray",
        "fqmn": "App\\Services\\Ai\\ResolvedAiAction@toArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::__construct",
        "fqmn": "App\\Services\\AiClient@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::referralInsights",
        "fqmn": "App\\Services\\AiClient@referralInsights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::summarizeRecognitionKpis",
        "fqmn": "App\\Services\\AiClient@summarizeRecognitionKpis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::redactText",
        "fqmn": "App\\Services\\AiSanitizer@redactText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::sanitizeLinkedin",
        "fqmn": "App\\Services\\AiSanitizer@sanitizeLinkedin",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::tokenMapEntities",
        "fqmn": "App\\Services\\AiSanitizer@tokenMapEntities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getCompanyAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getCompanyAnalytics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getCultureHeatmap",
        "fqmn": "App\\Services\\AnalyticsService@getCultureHeatmap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getGlobalAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getGlobalAnalytics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getGlobalCultureHeatmap",
        "fqmn": "App\\Services\\AnalyticsService@getGlobalCultureHeatmap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getTeamAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getTeamAnalytics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::cleanupOldLogs",
        "fqmn": "App\\Services\\AuditService@cleanupOldLogs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::getAuditSummary",
        "fqmn": "App\\Services\\AuditService@getAuditSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::log",
        "fqmn": "App\\Services\\AuditService@log",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logContactOperation",
        "fqmn": "App\\Services\\AuditService@logContactOperation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logError",
        "fqmn": "App\\Services\\AuditService@logError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logInvoiceCreation",
        "fqmn": "App\\Services\\AuditService@logInvoiceCreation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logInvoiceSent",
        "fqmn": "App\\Services\\AuditService@logInvoiceSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logPaymentReconciliation",
        "fqmn": "App\\Services\\AuditService@logPaymentReconciliation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logProductSync",
        "fqmn": "App\\Services\\AuditService@logProductSync",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logPurchaseOrderCreation",
        "fqmn": "App\\Services\\AuditService@logPurchaseOrderCreation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logSystemOperation",
        "fqmn": "App\\Services\\AuditService@logSystemOperation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logValidationFailure",
        "fqmn": "App\\Services\\AuditService@logValidationFailure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logZohoOperation",
        "fqmn": "App\\Services\\AuditService@logZohoOperation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::searchAuditLogs",
        "fqmn": "App\\Services\\AuditService@searchAuditLogs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::emitEvent",
        "fqmn": "App\\Services\\AutomationEngine@emitEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::handleEvent",
        "fqmn": "App\\Services\\AutomationEngine@handleEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::processPendingEvents",
        "fqmn": "App\\Services\\AutomationEngine@processPendingEvents",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::runAutomation",
        "fqmn": "App\\Services\\AutomationEngine@runAutomation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::runCron",
        "fqmn": "App\\Services\\AutomationEngine@runCron",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::runNow",
        "fqmn": "App\\Services\\AutomationEngine@runNow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getCultureMomentumIndex",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getCultureMomentumIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getCultureVolatility",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getCultureVolatility",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getSilentDaysMap",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getSilentDaysMap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::__construct",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateCliqueCandidates",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateCliqueCandidates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateRecognitionEquityIndex",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateRecognitionEquityIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateSiloScoreByDepartment",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateSiloScoreByDepartment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getCliqueCandidates",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getRecognitionEquityIndex",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getRecognitionEquityIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getSiloScoreByDepartment",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getSiloScoreByDepartment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/HabitAnalyticsService.php::App\\Services\\Awareness\\HabitAnalyticsService::getStreakHealth",
        "fqmn": "App\\Services\\Awareness\\HabitAnalyticsService@getStreakHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/HabitAnalyticsService.php::App\\Services\\Awareness\\HabitAnalyticsService::getTeamConsistencyIndex",
        "fqmn": "App\\Services\\Awareness\\HabitAnalyticsService@getTeamConsistencyIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/ProductivityLinkService.php::App\\Services\\Awareness\\ProductivityLinkService::getUnderRecognizedHighProducers",
        "fqmn": "App\\Services\\Awareness\\ProductivityLinkService@getUnderRecognizedHighProducers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getAfterHoursStressSignal",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getAfterHoursStressSignal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getLowSpecificityFlags",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getLowSpecificityFlags",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getPolicyAbuseWatch",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getPolicyAbuseWatch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getDecliningValues",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getImpactScores",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getImpactScores",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getRisingValues",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getRisingValues",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::collectForView",
        "fqmn": "App\\Services\\BadgeOkrService@collectForView",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getBadgeRoiMetrics",
        "fqmn": "App\\Services\\BadgeOkrService@getBadgeRoiMetrics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getResultOrientedTargets",
        "fqmn": "App\\Services\\BadgeOkrService@getResultOrientedTargets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getRoiTimeline",
        "fqmn": "App\\Services\\BadgeOkrService@getRoiTimeline",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getTaskOrientedTargets",
        "fqmn": "App\\Services\\BadgeOkrService@getTaskOrientedTargets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getTeamProgress",
        "fqmn": "App\\Services\\BadgeOkrService@getTeamProgress",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::awardBadge",
        "fqmn": "App\\Services\\BadgeService@awardBadge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::checkAndAwardBadges",
        "fqmn": "App\\Services\\BadgeService@checkAndAwardBadges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::createDefaultBadges",
        "fqmn": "App\\Services\\BadgeService@createDefaultBadges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::getAvailableBadges",
        "fqmn": "App\\Services\\BadgeService@getAvailableBadges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::getUserBadgeStats",
        "fqmn": "App\\Services\\BadgeService@getUserBadgeStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::revokeBadge",
        "fqmn": "App\\Services\\BadgeService@revokeBadge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::createTarget",
        "fqmn": "App\\Services\\BadgeTargetService@createTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::getUserDashboardStats",
        "fqmn": "App\\Services\\BadgeTargetService@getUserDashboardStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::getUserTargets",
        "fqmn": "App\\Services\\BadgeTargetService@getUserTargets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::updateAllTargetProgress",
        "fqmn": "App\\Services\\BadgeTargetService@updateAllTargetProgress",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::updateTargetProgress",
        "fqmn": "App\\Services\\BadgeTargetService@updateTargetProgress",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BehaviorDriversService.php::App\\Services\\BehaviorDriversService::compute",
        "fqmn": "App\\Services\\BehaviorDriversService@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Billing/BillingAmountCalculator.php::App\\Services\\Billing\\BillingAmountCalculator::calculateFromBase",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Billing/BillingAmountCalculator.php::App\\Services\\Billing\\BillingAmountCalculator::calculateTotal",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@calculateTotal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Billing/SeatCountService.php::App\\Services\\Billing\\SeatCountService::getBillableUnitCount",
        "fqmn": "App\\Services\\Billing\\SeatCountService@getBillableUnitCount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BotMan/BotHelpService.php::App\\Services\\BotMan\\BotHelpService::replyFor",
        "fqmn": "App\\Services\\BotMan\\BotHelpService@replyFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/BotMan/BotHelpService.php::App\\Services\\BotMan\\BotHelpService::replyForWithContext",
        "fqmn": "App\\Services\\BotMan\\BotHelpService@replyForWithContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/CityFromIp.php::App\\Services\\CityFromIp::for",
        "fqmn": "App\\Services\\CityFromIp@for",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Ai/AiSummaryPayloadBuilder.php::App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Ai/OpenAiSummaryClient.php::App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient::generateSummaries",
        "fqmn": "App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient@generateSummaries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomKpiService.php::App\\Services\\ControlRoom\\ControlRoomKpiService::buildExecutiveFallback",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomKpiService@buildExecutiveFallback",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomKpiService.php::App\\Services\\ControlRoom\\ControlRoomKpiService::buildKpiContext",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomKpiService@buildKpiContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::formatValue",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@formatValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::getPriorSummary",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@getPriorSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::getSummary",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@getSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/GlossaryComposer.php::App\\Services\\ControlRoom\\GlossaryComposer::resolveActiveCompanyId",
        "fqmn": "App\\Services\\ControlRoom\\GlossaryComposer@resolveActiveCompanyId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Metrics/ScopeFilter.php::App\\Services\\ControlRoom\\Metrics\\ScopeFilter::resolveUserIds",
        "fqmn": "App\\Services\\ControlRoom\\Metrics\\ScopeFilter@resolveUserIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ScopeResolver.php::App\\Services\\ControlRoom\\ScopeResolver::resolve",
        "fqmn": "App\\Services\\ControlRoom\\ScopeResolver@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/BaselineBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/ConfidenceEstimator.php::App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator::checkAdequacy",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator@checkAdequacy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/ConfidenceEstimator.php::App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator::estimate",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator@estimate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/ConfidenceEstimator.php::App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator::scoreToLevel",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator@scoreToLevel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/DataAggregator.php::App\\Services\\ControlRoom\\TalentInsights\\DataAggregator::aggregate",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\DataAggregator@aggregate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/EngagementRisk.php::App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk::computeV2",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk@computeV2",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/FeatureBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/FeatureBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder::preprocess",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@preprocess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/LeadershipScore.php::App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore::compute",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::clamp01",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::mad",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::median",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@median",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::percentileRank",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileRank",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::percentileValue",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::robustZScore",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@robustZScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::toPercentage",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@toPercentage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::weightedSum",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@weightedSum",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::winsorize",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@winsorize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalRiskModel.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalRiskModel::run",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalRiskModel@run",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::formatForDisplay",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@formatForDisplay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::getAtRiskCount",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskCount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::getAtRiskList",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskList",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::isExcludedFromDisplay",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@isExcludedFromDisplay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::resolve",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::toLegacyFormat",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@toLegacyFormat",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TimeWindowHelper.php::App\\Services\\ControlRoom\\TimeWindowHelper::detectWindowType",
        "fqmn": "App\\Services\\ControlRoom\\TimeWindowHelper@detectWindowType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TimeWindowHelper.php::App\\Services\\ControlRoom\\TimeWindowHelper::resolveWindow",
        "fqmn": "App\\Services\\ControlRoom\\TimeWindowHelper@resolveWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getBadgeEarnersLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getParticipantLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getParticipantLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getPointsGainersLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getPointsGainersLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getReceiverLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getReceiverLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getTaskCompletorsLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getTaskCompletorsLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::applyAdvanceToInvoice",
        "fqmn": "App\\Services\\CreditLedgerService@applyAdvanceToInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::issueCustomerAdvance",
        "fqmn": "App\\Services\\CreditLedgerService@issueCustomerAdvance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::issueDowngradeCredit",
        "fqmn": "App\\Services\\CreditLedgerService@issueDowngradeCredit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/CulturalMomentumService.php::App\\Services\\CulturalMomentumService::compute",
        "fqmn": "App\\Services\\CulturalMomentumService@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/CultureMetricsService.php::App\\Services\\CultureMetricsService::getCulturalMomentum",
        "fqmn": "App\\Services\\CultureMetricsService@getCulturalMomentum",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/CultureMetricsService.php::App\\Services\\CultureMetricsService::getTeamCollaboration",
        "fqmn": "App\\Services\\CultureMetricsService@getTeamCollaboration",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/BadgesPieComposer.php::App\\Services\\Dashboard\\BadgesPieComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\BadgesPieComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/CulturePulseFeedComposer.php::App\\Services\\Dashboard\\CulturePulseFeedComposer::__construct",
        "fqmn": "App\\Services\\Dashboard\\CulturePulseFeedComposer@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/CulturePulseFeedComposer.php::App\\Services\\Dashboard\\CulturePulseFeedComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\CulturePulseFeedComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/LeaderboardSnapshotComposer.php::App\\Services\\Dashboard\\LeaderboardSnapshotComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\LeaderboardSnapshotComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/PerformerRankingComposer.php::App\\Services\\Dashboard\\PerformerRankingComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\PerformerRankingComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/RecognitionPointsComposer.php::App\\Services\\Dashboard\\RecognitionPointsComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\RecognitionPointsComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/TaskCompletersComposer.php::App\\Services\\Dashboard\\TaskCompletersComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TaskCompletersComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/TasksSummaryComposer.php::App\\Services\\Dashboard\\TasksSummaryComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TasksSummaryComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/TeamPerformanceComposer.php::App\\Services\\Dashboard\\TeamPerformanceComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TeamPerformanceComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/UpcomingAnniversariesComposer.php::App\\Services\\Dashboard\\UpcomingAnniversariesComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\UpcomingAnniversariesComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/UpcomingBirthdaysComposer.php::App\\Services\\Dashboard\\UpcomingBirthdaysComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\UpcomingBirthdaysComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Dashboard/ValuesPieComposer.php::App\\Services\\Dashboard\\ValuesPieComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\ValuesPieComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DataQualityService.php::App\\Services\\DataQualityService::shouldShowWarning",
        "fqmn": "App\\Services\\DataQualityService@shouldShowWarning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DiDAnalysisService.php::App\\Services\\DiDAnalysisService::calculateRetentionDiD",
        "fqmn": "App\\Services\\DiDAnalysisService@calculateRetentionDiD",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::__construct",
        "fqmn": "App\\Services\\DigestGenerationService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::approveDigest",
        "fqmn": "App\\Services\\DigestGenerationService@approveDigest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::bulkApproveDigests",
        "fqmn": "App\\Services\\DigestGenerationService@bulkApproveDigests",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::generateDigestBatch",
        "fqmn": "App\\Services\\DigestGenerationService@generateDigestBatch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::generateDigestForEmployee",
        "fqmn": "App\\Services\\DigestGenerationService@generateDigestForEmployee",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::generateDigestsForCompany",
        "fqmn": "App\\Services\\DigestGenerationService@generateDigestsForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::getDigestStats",
        "fqmn": "App\\Services\\DigestGenerationService@getDigestStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::rejectDigest",
        "fqmn": "App\\Services\\DigestGenerationService@rejectDigest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::sendApprovedDigests",
        "fqmn": "App\\Services\\DigestGenerationService@sendApprovedDigests",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::testDigestGeneration",
        "fqmn": "App\\Services\\DigestGenerationService@testDigestGeneration",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::evaluateMultiSubscriptionDunning",
        "fqmn": "App\\Services\\DunningService@evaluateMultiSubscriptionDunning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::isCompanyDunningPaused",
        "fqmn": "App\\Services\\DunningService@isCompanyDunningPaused",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::processScheduledAttempt",
        "fqmn": "App\\Services\\DunningService@processScheduledAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::resumeMultiSubscriptionDunning",
        "fqmn": "App\\Services\\DunningService@resumeMultiSubscriptionDunning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::runAttempt",
        "fqmn": "App\\Services\\DunningService@runAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::scheduleRetry",
        "fqmn": "App\\Services\\DunningService@scheduleRetry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::generateSampleData",
        "fqmn": "App\\Services\\EmailTemplateService@generateSampleData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::getAllowedPlaceholders",
        "fqmn": "App\\Services\\EmailTemplateService@getAllowedPlaceholders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::renderTemplate",
        "fqmn": "App\\Services\\EmailTemplateService@renderTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::validateTemplateContent",
        "fqmn": "App\\Services\\EmailTemplateService@validateTemplateContent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/EmployeeWellnessService.php::App\\Services\\EmployeeWellnessService::getSatisfactionMetrics",
        "fqmn": "App\\Services\\EmployeeWellnessService@getSatisfactionMetrics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/EmployeeWellnessService.php::App\\Services\\EmployeeWellnessService::getWellnessIndex",
        "fqmn": "App\\Services\\EmployeeWellnessService@getWellnessIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/EngagementHealthService.php::App\\Services\\EngagementHealthService::scoreEhs",
        "fqmn": "App\\Services\\EngagementHealthService@scoreEhs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/EngagementHealthService.php::App\\Services\\EngagementHealthService::summaries",
        "fqmn": "App\\Services\\EngagementHealthService@summaries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::canAddSeat",
        "fqmn": "App\\Services\\Entitlements@canAddSeat",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::ensure",
        "fqmn": "App\\Services\\Entitlements@ensure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::hasActiveSubscription",
        "fqmn": "App\\Services\\Entitlements@hasActiveSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::hasFeature",
        "fqmn": "App\\Services\\Entitlements@hasFeature",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::subscriptionStatus",
        "fqmn": "App\\Services\\Entitlements@subscriptionStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ExecutiveOverviewService.php::App\\Services\\ExecutiveOverviewService::__construct",
        "fqmn": "App\\Services\\ExecutiveOverviewService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ExecutiveOverviewService.php::App\\Services\\ExecutiveOverviewService::build",
        "fqmn": "App\\Services\\ExecutiveOverviewService@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::build",
        "fqmn": "App\\Services\\ExecutiveSummaryService@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::buildKpi",
        "fqmn": "App\\Services\\ExecutiveSummaryService@buildKpi",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::buildOkr",
        "fqmn": "App\\Services\\ExecutiveSummaryService@buildOkr",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/FcmService.php::App\\Services\\FcmService::__construct",
        "fqmn": "App\\Services\\FcmService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/FcmService.php::App\\Services\\FcmService::send",
        "fqmn": "App\\Services\\FcmService@send",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/FeatureGateService.php::App\\Services\\FeatureGateService::__construct",
        "fqmn": "App\\Services\\FeatureGateService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/FeatureGateService.php::App\\Services\\FeatureGateService::check",
        "fqmn": "App\\Services\\FeatureGateService@check",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ForecastComputationService.php::App\\Services\\ForecastComputationService::build",
        "fqmn": "App\\Services\\ForecastComputationService@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ForecastService.php::App\\Services\\ForecastService::__construct",
        "fqmn": "App\\Services\\ForecastService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ForecastService.php::App\\Services\\ForecastService::getForecastWidgets",
        "fqmn": "App\\Services\\ForecastService@getForecastWidgets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::__construct",
        "fqmn": "App\\Services\\GPTService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::chatJson",
        "fqmn": "App\\Services\\GPTService@chatJson",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::chatPlain",
        "fqmn": "App\\Services\\GPTService@chatPlain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::estimateCost",
        "fqmn": "App\\Services\\GPTService@estimateCost",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::generateDigestContent",
        "fqmn": "App\\Services\\GPTService@generateDigestContent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::generateReferralInsightsWithFile",
        "fqmn": "App\\Services\\GPTService@generateReferralInsightsWithFile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::testConnection",
        "fqmn": "App\\Services\\GPTService@testConnection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::uploadFile",
        "fqmn": "App\\Services\\GPTService@uploadFile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/ConfidenceScore.php::App\\Services\\Guardrails\\ConfidenceScore::clampStatus",
        "fqmn": "App\\Services\\Guardrails\\ConfidenceScore@clampStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/ConfidenceScore.php::App\\Services\\Guardrails\\ConfidenceScore::compute",
        "fqmn": "App\\Services\\Guardrails\\ConfidenceScore@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::filterNewHires",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@filterNewHires",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getEligibleUserIds",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getEligibleUserIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getGraceDays",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getGraceDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getOnboardingCohort",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getOnboardingCohort",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::isNewHire",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@isNewHire",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/InvestigationEligibilityService.php::App\\Services\\Guardrails\\InvestigationEligibilityService::computeRelativePerformance",
        "fqmn": "App\\Services\\Guardrails\\InvestigationEligibilityService@computeRelativePerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/InvestigationEligibilityService.php::App\\Services\\Guardrails\\InvestigationEligibilityService::evaluateUsers",
        "fqmn": "App\\Services\\Guardrails\\InvestigationEligibilityService@evaluateUsers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/WidgetGuardrails.php::App\\Services\\Guardrails\\WidgetGuardrails::buildContext",
        "fqmn": "App\\Services\\Guardrails\\WidgetGuardrails@buildContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/WidgetGuardrails.php::App\\Services\\Guardrails\\WidgetGuardrails::filterNewHires",
        "fqmn": "App\\Services\\Guardrails\\WidgetGuardrails@filterNewHires",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/WidgetGuardrails.php::App\\Services\\Guardrails\\WidgetGuardrails::insufficientDataPayload",
        "fqmn": "App\\Services\\Guardrails\\WidgetGuardrails@insufficientDataPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Guardrails/WidgetGuardrails.php::App\\Services\\Guardrails\\WidgetGuardrails::wrapPayload",
        "fqmn": "App\\Services\\Guardrails\\WidgetGuardrails@wrapPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::buildSystemPromptGlobal",
        "fqmn": "App\\Services\\HelpEngine@buildSystemPromptGlobal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::composeGlobal",
        "fqmn": "App\\Services\\HelpEngine@composeGlobal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::detectLocaleFromMessage",
        "fqmn": "App\\Services\\HelpEngine@detectLocaleFromMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::detectRewardsProgramIntent",
        "fqmn": "App\\Services\\HelpEngine@detectRewardsProgramIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::replyForDM",
        "fqmn": "App\\Services\\HelpEngine@replyForDM",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/AutomationScorer.php::App\\Services\\HireReadiness\\AutomationScorer::score",
        "fqmn": "App\\Services\\HireReadiness\\AutomationScorer@score",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/AutomationScorer.php::App\\Services\\HireReadiness\\AutomationScorer::scorePendingLines",
        "fqmn": "App\\Services\\HireReadiness\\AutomationScorer@scorePendingLines",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/CrossTenantAggregator.php::App\\Services\\HireReadiness\\CrossTenantAggregator::enrichMetric",
        "fqmn": "App\\Services\\HireReadiness\\CrossTenantAggregator@enrichMetric",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/CrossTenantAggregator.php::App\\Services\\HireReadiness\\CrossTenantAggregator::lookup",
        "fqmn": "App\\Services\\HireReadiness\\CrossTenantAggregator@lookup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/CrossTenantAggregator.php::App\\Services\\HireReadiness\\CrossTenantAggregator::rebuild",
        "fqmn": "App\\Services\\HireReadiness\\CrossTenantAggregator@rebuild",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DistributionPoller.php::App\\Services\\HireReadiness\\DistributionPoller::openPoll",
        "fqmn": "App\\Services\\HireReadiness\\DistributionPoller@openPoll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DistributionPoller.php::App\\Services\\HireReadiness\\DistributionPoller::timeoutExpiredResponses",
        "fqmn": "App\\Services\\HireReadiness\\DistributionPoller@timeoutExpiredResponses",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/AssessmentWindow.php::App\\Services\\HireReadiness\\DTO\\AssessmentWindow::buckets",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\AssessmentWindow@buckets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::__construct",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::isEmpty",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@isEmpty",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::size",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@size",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@toArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::__construct",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::excluded",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@excluded",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::isIncluded",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isIncluded",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::isSignificant",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isSignificant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@toArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::__construct",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::includedMetrics",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@includedMetrics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::metric",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@metric",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@toArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireOutcomeTracker.php::App\\Services\\HireReadiness\\HireOutcomeTracker::recordResponse",
        "fqmn": "App\\Services\\HireReadiness\\HireOutcomeTracker@recordResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireOutcomeTracker.php::App\\Services\\HireReadiness\\HireOutcomeTracker::schedule",
        "fqmn": "App\\Services\\HireReadiness\\HireOutcomeTracker@schedule",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireOutcomeTracker.php::App\\Services\\HireReadiness\\HireOutcomeTracker::sweepDue",
        "fqmn": "App\\Services\\HireReadiness\\HireOutcomeTracker@sweepDue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::approve",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@approve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::createApprovalChain",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@createApprovalChain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::pendingApprovalFor",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@pendingApprovalFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::reject",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@reject",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::closePollAndAssess",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@closePollAndAssess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::decomposeJd",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@decomposeJd",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::generateNarrative",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@generateNarrative",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::submitForApproval",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@submitForApproval",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::submitForPoll",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@submitForPoll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPublisher.php::App\\Services\\HireReadiness\\HireRequestPublisher::publish",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPublisher@publish",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/JdDecomposer.php::App\\Services\\HireReadiness\\JdDecomposer::decompose",
        "fqmn": "App\\Services\\HireReadiness\\JdDecomposer@decompose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/JdDecomposer.php::App\\Services\\HireReadiness\\JdDecomposer::decomposeAndPersist",
        "fqmn": "App\\Services\\HireReadiness\\JdDecomposer@decomposeAndPersist",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/PeerSetResolver.php::App\\Services\\HireReadiness\\PeerSetResolver::resolve",
        "fqmn": "App\\Services\\HireReadiness\\PeerSetResolver@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/PromotionMatcher.php::App\\Services\\HireReadiness\\PromotionMatcher::matchPendingLines",
        "fqmn": "App\\Services\\HireReadiness\\PromotionMatcher@matchPendingLines",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/RequesterTrackRecord.php::App\\Services\\HireReadiness\\RequesterTrackRecord::forUser",
        "fqmn": "App\\Services\\HireReadiness\\RequesterTrackRecord@forUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/AttritionRisk.php::App\\Services\\HireReadiness\\Signals\\AttritionRisk::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\AttritionRisk@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/AttritionRisk.php::App\\Services\\HireReadiness\\Signals\\AttritionRisk::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\AttritionRisk@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/BadgeDistribution.php::App\\Services\\HireReadiness\\Signals\\BadgeDistribution::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/BadgeDistribution.php::App\\Services\\HireReadiness\\Signals\\BadgeDistribution::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/GiniCoefficient.php::App\\Services\\HireReadiness\\Signals\\GiniCoefficient::gini",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\GiniCoefficient@gini",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/HeadcountTrend.php::App\\Services\\HireReadiness\\Signals\\HeadcountTrend::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/HeadcountTrend.php::App\\Services\\HireReadiness\\Signals\\HeadcountTrend::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/ReactionDepth.php::App\\Services\\HireReadiness\\Signals\\ReactionDepth::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/ReactionDepth.php::App\\Services\\HireReadiness\\Signals\\ReactionDepth::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/RecentHireFlag.php::App\\Services\\HireReadiness\\Signals\\RecentHireFlag::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecentHireFlag@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/RecentHireFlag.php::App\\Services\\HireReadiness\\Signals\\RecentHireFlag::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecentHireFlag@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/RecognitionVelocity.php::App\\Services\\HireReadiness\\Signals\\RecognitionVelocity::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/RecognitionVelocity.php::App\\Services\\HireReadiness\\Signals\\RecognitionVelocity::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskCycleTime.php::App\\Services\\HireReadiness\\Signals\\TaskCycleTime::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskCycleTime.php::App\\Services\\HireReadiness\\Signals\\TaskCycleTime::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskThroughput.php::App\\Services\\HireReadiness\\Signals\\TaskThroughput::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskThroughput.php::App\\Services\\HireReadiness\\Signals\\TaskThroughput::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TenureMix.php::App\\Services\\HireReadiness\\Signals\\TenureMix::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TenureMix.php::App\\Services\\HireReadiness\\Signals\\TenureMix::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/ConfidenceClassifier.php::App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier::classify",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier@classify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/CoverageScore.php::App\\Services\\HireReadiness\\Statistics\\CoverageScore::compute",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\CoverageScore@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/CoverageScore.php::App\\Services\\HireReadiness\\Statistics\\CoverageScore::rollupConfidence",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\CoverageScore@rollupConfidence",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::coefficientOfVariation",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::confidenceInterval95",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@confidenceInterval95",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::stddev",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@stddev",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/PercentileRank.php::App\\Services\\HireReadiness\\Statistics\\PercentileRank::compute",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\PercentileRank@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/SignificanceTest.php::App\\Services\\HireReadiness\\Statistics\\SignificanceTest::againstPeerMean",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\SignificanceTest@againstPeerMean",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/TrendAnalysis.php::App\\Services\\HireReadiness\\Statistics\\TrendAnalysis::ols",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\TrendAnalysis@ols",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/TeamHiringHistory.php::App\\Services\\HireReadiness\\TeamHiringHistory::forTeam",
        "fqmn": "App\\Services\\HireReadiness\\TeamHiringHistory@forTeam",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/TeamSignalStatistics.php::App\\Services\\HireReadiness\\TeamSignalStatistics::compute",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/HireReadiness/TeamSignalStatistics.php::App\\Services\\HireReadiness\\TeamSignalStatistics::signals",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@signals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::enrichContextWithExternalData",
        "fqmn": "App\\Services\\InferenceEngine@enrichContextWithExternalData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::generateContextProfile",
        "fqmn": "App\\Services\\InferenceEngine@generateContextProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::validateContextProfile",
        "fqmn": "App\\Services\\InferenceEngine@validateContextProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InsightComposer.php::App\\Services\\InsightComposer::compose",
        "fqmn": "App\\Services\\InsightComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceExportService.php::App\\Services\\InvoiceExportService::streamCsv",
        "fqmn": "App\\Services\\InvoiceExportService@streamCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceOcrService.php::App\\Services\\InvoiceOcrService::processSupplierInvoice",
        "fqmn": "App\\Services\\InvoiceOcrService@processSupplierInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createOrderInvoice",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createOrderInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createPlanInvoiceFromCharge",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createPlanInvoiceFromCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createWalletReceipt",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createWalletReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceService.php::App\\Services\\InvoiceService::generateSubscriptionInvoice",
        "fqmn": "App\\Services\\InvoiceService@generateSubscriptionInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::cleanupDraftInvoices",
        "fqmn": "App\\Services\\InvoiceWorkflowService@cleanupDraftInvoices",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::createInvoiceIfReady",
        "fqmn": "App\\Services\\InvoiceWorkflowService@createInvoiceIfReady",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::getWorkflowStatus",
        "fqmn": "App\\Services\\InvoiceWorkflowService@getWorkflowStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingAdvancesSince",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingAdvancesSince",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingInvoices",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingInvoices",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingInvoicesSince",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingInvoicesSince",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::createJob",
        "fqmn": "App\\Services\\JobService@createJob",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::createReferral",
        "fqmn": "App\\Services\\JobService@createReferral",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::updateJobStatus",
        "fqmn": "App\\Services\\JobService@updateJobStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::classifyDocument",
        "fqmn": "App\\Services\\KieClassifierService@classifyDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::confirmDocumentType",
        "fqmn": "App\\Services\\KieClassifierService@confirmDocumentType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::getClassificationDisplay",
        "fqmn": "App\\Services\\KieClassifierService@getClassificationDisplay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::shouldClassifyDocument",
        "fqmn": "App\\Services\\KieClassifierService@shouldClassifyDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::getDepartmentKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@getDepartmentKnowledge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::getNameKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@getNameKnowledge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::normalizeDeptKey",
        "fqmn": "App\\Services\\KnowledgeService@normalizeDeptKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::normalizeNameKey",
        "fqmn": "App\\Services\\KnowledgeService@normalizeNameKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::upsertDepartmentKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@upsertDepartmentKnowledge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::upsertNameKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@upsertNameKnowledge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KpiOkrService.php::App\\Services\\KpiOkrService::buildCore",
        "fqmn": "App\\Services\\KpiOkrService@buildCore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KpiOkrService.php::App\\Services\\KpiOkrService::getOkrMomentumForecast",
        "fqmn": "App\\Services\\KpiOkrService@getOkrMomentumForecast",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KpiOkrService.php::App\\Services\\KpiOkrService::getOkrPaceTracker",
        "fqmn": "App\\Services\\KpiOkrService@getOkrPaceTracker",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/KpiOkrService.php::App\\Services\\KpiOkrService::getRecognitionValueGap",
        "fqmn": "App\\Services\\KpiOkrService@getRecognitionValueGap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::createDefaultLeaderboards",
        "fqmn": "App\\Services\\LeaderboardService@createDefaultLeaderboards",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::getCompanyLeaderboards",
        "fqmn": "App\\Services\\LeaderboardService@getCompanyLeaderboards",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::getLeaderboardSummary",
        "fqmn": "App\\Services\\LeaderboardService@getLeaderboardSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::getUserPosition",
        "fqmn": "App\\Services\\LeaderboardService@getUserPosition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::toggleLeaderboardVisibility",
        "fqmn": "App\\Services\\LeaderboardService@toggleLeaderboardVisibility",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::updateLeaderboardSettings",
        "fqmn": "App\\Services\\LeaderboardService@updateLeaderboardSettings",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getInfluenceReachDepth",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getManagerCoverageQuality",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerCoverageQuality",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getManagerLatencyToRecognize",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerLatencyToRecognize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::summaries",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@summaries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::contextFromRequest",
        "fqmn": "App\\Services\\LinkedInCapi@contextFromRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::customerConverted",
        "fqmn": "App\\Services\\LinkedInCapi@customerConverted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::demoBooked",
        "fqmn": "App\\Services\\LinkedInCapi@demoBooked",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::leadSubmitted",
        "fqmn": "App\\Services\\LinkedInCapi@leadSubmitted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::track",
        "fqmn": "App\\Services\\LinkedInCapi@track",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::trialStarted",
        "fqmn": "App\\Services\\LinkedInCapi@trialStarted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::getCanonicalKeys",
        "fqmn": "App\\Services\\MappingService@getCanonicalKeys",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::saveProfile",
        "fqmn": "App\\Services\\MappingService@saveProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::suggestMapping",
        "fqmn": "App\\Services\\MappingService@suggestMapping",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::suggestMappingDetailed",
        "fqmn": "App\\Services\\MappingService@suggestMappingDetailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::get",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@get",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::getFallbackPayload",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@getFallbackPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::getFallbackResult",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@getFallbackResult",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::store",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@store",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/EmailSenders/GmailSender.php::App\\Services\\Occasions\\EmailSenders\\GmailSender::sendTest",
        "fqmn": "App\\Services\\Occasions\\EmailSenders\\GmailSender@sendTest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/EmailSenders/OutlookSender.php::App\\Services\\Occasions\\EmailSenders\\OutlookSender::sendTest",
        "fqmn": "App\\Services\\Occasions\\EmailSenders\\OutlookSender@sendTest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::canUseOccasion",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@canUseOccasion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getAvailableFeatures",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getAvailableFeatures",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getFeatureDescription",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getFeatureDescription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getFeatureLimits",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getFeatureLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getRequiredPlanLevel",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getRequiredPlanLevel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/ManagerResolver.php::App\\Services\\Occasions\\ManagerResolver::getManagerRecipientsFor",
        "fqmn": "App\\Services\\Occasions\\ManagerResolver@getManagerRecipientsFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/OccasionRenderer.php::App\\Services\\Occasions\\OccasionRenderer::renderEmailContent",
        "fqmn": "App\\Services\\Occasions\\OccasionRenderer@renderEmailContent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/OccasionRenderer.php::App\\Services\\Occasions\\OccasionRenderer::validateTemplate",
        "fqmn": "App\\Services\\Occasions\\OccasionRenderer@validateTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::applyAutoCorrect",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@applyAutoCorrect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::autoCorrectTypo",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::canonicalizePlaceholders",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@canonicalizePlaceholders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::extractCleanKey",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@extractCleanKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::helpList",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@helpList",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::isValid",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@isValid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::normalize",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@normalize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::preferredArabicAlias",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@preferredArabicAlias",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::resolve",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::analyzeConfidenceScores",
        "fqmn": "App\\Services\\OcrAnalyticsService@analyzeConfidenceScores",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::calculateAverageConfidence",
        "fqmn": "App\\Services\\OcrAnalyticsService@calculateAverageConfidence",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::checkOcrServiceHealth",
        "fqmn": "App\\Services\\OcrAnalyticsService@checkOcrServiceHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::exportAnalytics",
        "fqmn": "App\\Services\\OcrAnalyticsService@exportAnalytics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getDocumentTypeSummary",
        "fqmn": "App\\Services\\OcrAnalyticsService@getDocumentTypeSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpis",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForDepartment",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForDepartment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForEmployee",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForEmployee",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForTeam",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForTeam",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForUsers",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForUsers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getOcrPerformanceStats",
        "fqmn": "App\\Services\\OcrAnalyticsService@getOcrPerformanceStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::__construct",
        "fqmn": "App\\Services\\OcrClient@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::extract",
        "fqmn": "App\\Services\\OcrClient@extract",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::getConfig",
        "fqmn": "App\\Services\\OcrClient@getConfig",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::isHealthy",
        "fqmn": "App\\Services\\OcrClient@isHealthy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::computeForAllOrgs",
        "fqmn": "App\\Services\\OkrAutoTargetService@computeForAllOrgs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::computeForCompany",
        "fqmn": "App\\Services\\OkrAutoTargetService@computeForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::getOkrSettings",
        "fqmn": "App\\Services\\OkrAutoTargetService@getOkrSettings",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::preview",
        "fqmn": "App\\Services\\OkrAutoTargetService@preview",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::__construct",
        "fqmn": "App\\Services\\OrderCompletionService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::autoCompleteEligibleOrders",
        "fqmn": "App\\Services\\OrderCompletionService@autoCompleteEligibleOrders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::canCompleteOrder",
        "fqmn": "App\\Services\\OrderCompletionService@canCompleteOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::markOrderCompleted",
        "fqmn": "App\\Services\\OrderCompletionService@markOrderCompleted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderExportService.php::App\\Services\\OrderExportService::buildInvoicesZip",
        "fqmn": "App\\Services\\OrderExportService@buildInvoicesZip",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderExportService.php::App\\Services\\OrderExportService::streamCsv",
        "fqmn": "App\\Services\\OrderExportService@streamCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderReconciliationService.php::App\\Services\\OrderReconciliationService::scan",
        "fqmn": "App\\Services\\OrderReconciliationService@scan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderReconciliationService.php::App\\Services\\OrderReconciliationService::scanSubscriptions",
        "fqmn": "App\\Services\\OrderReconciliationService@scanSubscriptions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OrderReconciliationService.php::App\\Services\\OrderReconciliationService::scanZohoSide",
        "fqmn": "App\\Services\\OrderReconciliationService@scanZohoSide",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::__construct",
        "fqmn": "App\\Services\\OtoClient@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::createShipment",
        "fqmn": "App\\Services\\OtoClient@createShipment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::getShipment",
        "fqmn": "App\\Services\\OtoClient@getShipment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::getShipmentCost",
        "fqmn": "App\\Services\\OtoClient@getShipmentCost",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::parseWebhook",
        "fqmn": "App\\Services\\OtoClient@parseWebhook",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/StoredPaymentMethodService.php::App\\Services\\PaymentGateway\\StoredPaymentMethodService::getDefaultForCompany",
        "fqmn": "App\\Services\\PaymentGateway\\StoredPaymentMethodService@getDefaultForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/StoredPaymentMethodService.php::App\\Services\\PaymentGateway\\StoredPaymentMethodService::getDefaultPaymentMethodTokenForSubscription",
        "fqmn": "App\\Services\\PaymentGateway\\StoredPaymentMethodService@getDefaultPaymentMethodTokenForSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::__construct",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::createCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@createCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::processWebhook",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@processWebhook",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::refundCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@refundCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::completePaymentFlow",
        "fqmn": "App\\Services\\PaymentLogger@completePaymentFlow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::getPaymentFlowSummary",
        "fqmn": "App\\Services\\PaymentLogger@getPaymentFlowSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::logPaymentError",
        "fqmn": "App\\Services\\PaymentLogger@logPaymentError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::logPaymentStep",
        "fqmn": "App\\Services\\PaymentLogger@logPaymentStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::searchPaymentFlows",
        "fqmn": "App\\Services\\PaymentLogger@searchPaymentFlows",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::startPaymentFlow",
        "fqmn": "App\\Services\\PaymentLogger@startPaymentFlow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::__construct",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::getProcessingStatus",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@getProcessingStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::processPaymentSuccess",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@processPaymentSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::processPaymentWebhook",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@processPaymentWebhook",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::calculateHighlightRegions",
        "fqmn": "App\\Services\\PdfRedliningService@calculateHighlightRegions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::cleanupOldRedlines",
        "fqmn": "App\\Services\\PdfRedliningService@cleanupOldRedlines",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::extractBoundingBoxes",
        "fqmn": "App\\Services\\PdfRedliningService@extractBoundingBoxes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::generateRedlinedPdf",
        "fqmn": "App\\Services\\PdfRedliningService@generateRedlinedPdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PlansCatalogService.php::App\\Services\\PlansCatalogService::getPublicPlansForDisplay",
        "fqmn": "App\\Services\\PlansCatalogService@getPublicPlansForDisplay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Predictive/AttritionRiskEstimator.php::App\\Services\\Predictive\\AttritionRiskEstimator::compute",
        "fqmn": "App\\Services\\Predictive\\AttritionRiskEstimator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Predictive/CulturalHealthIndexCalculator.php::App\\Services\\Predictive\\CulturalHealthIndexCalculator::compute",
        "fqmn": "App\\Services\\Predictive\\CulturalHealthIndexCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Predictive/CulturalMomentumService.php::App\\Services\\Predictive\\CulturalMomentumService::compute",
        "fqmn": "App\\Services\\Predictive\\CulturalMomentumService@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Predictive/PromotionReadinessPredictor.php::App\\Services\\Predictive\\PromotionReadinessPredictor::compute",
        "fqmn": "App\\Services\\Predictive\\PromotionReadinessPredictor@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Predictive/ScenarioSimulator.php::App\\Services\\Predictive\\ScenarioSimulator::__construct",
        "fqmn": "App\\Services\\Predictive\\ScenarioSimulator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Predictive/ScenarioSimulator.php::App\\Services\\Predictive\\ScenarioSimulator::simulate",
        "fqmn": "App\\Services\\Predictive\\ScenarioSimulator@simulate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Predictive/TeamStabilityIndex.php::App\\Services\\Predictive\\TeamStabilityIndex::compute",
        "fqmn": "App\\Services\\Predictive\\TeamStabilityIndex@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PricingResolver.php::App\\Services\\PricingResolver::getPerUnitPrice",
        "fqmn": "App\\Services\\PricingResolver@getPerUnitPrice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::generateCheckoutValidationRules",
        "fqmn": "App\\Services\\ProductCustomFieldsService@generateCheckoutValidationRules",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::getCustomFieldsForCart",
        "fqmn": "App\\Services\\ProductCustomFieldsService@getCustomFieldsForCart",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::getDisplayDataForSupplier",
        "fqmn": "App\\Services\\ProductCustomFieldsService@getDisplayDataForSupplier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::processCustomFieldsForOrder",
        "fqmn": "App\\Services\\ProductCustomFieldsService@processCustomFieldsForOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::validateCustomFieldsData",
        "fqmn": "App\\Services\\ProductCustomFieldsService@validateCustomFieldsData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::getPromotionPrecedent",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@getPromotionPrecedent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::getSalaryEquityCheck",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@getSalaryEquityCheck",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::recordCompensation",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@recordCompensation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::checkAndHandleCompletion",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@checkAndHandleCompletion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::customizeTarget",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@customizeTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::generate",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@generate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::ratifyTarget",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@ratifyTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/Pillars/CulturalAdherenceCalculator.php::App\\Services\\Promotion\\Pillars\\CulturalAdherenceCalculator::compute",
        "fqmn": "App\\Services\\Promotion\\Pillars\\CulturalAdherenceCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/Pillars/ExecutionIndexCalculator.php::App\\Services\\Promotion\\Pillars\\ExecutionIndexCalculator::compute",
        "fqmn": "App\\Services\\Promotion\\Pillars\\ExecutionIndexCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/Pillars/NetworkInfluenceCalculator.php::App\\Services\\Promotion\\Pillars\\NetworkInfluenceCalculator::compute",
        "fqmn": "App\\Services\\Promotion\\Pillars\\NetworkInfluenceCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::activeCooldown",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@activeCooldown",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::apply",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@apply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::latestApplication",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@latestApplication",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionAuditLogger.php::App\\Services\\Promotion\\PromotionAuditLogger::log",
        "fqmn": "App\\Services\\Promotion\\PromotionAuditLogger@log",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCalibrationService.php::App\\Services\\Promotion\\PromotionCalibrationService::analyzeFlags",
        "fqmn": "App\\Services\\Promotion\\PromotionCalibrationService@analyzeFlags",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::attritionRiskFor",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@attritionRiskFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::closeCycle",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@closeCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::composePriority",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@composePriority",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::createCycle",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@createCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::evaluateAll",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@evaluateAll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::finalizeCycle",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@finalizeCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::isFinalized",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@isFinalized",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::previousCycleKey",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@previousCycleKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionEvaluationService.php::App\\Services\\Promotion\\PromotionEvaluationService::evaluate",
        "fqmn": "App\\Services\\Promotion\\PromotionEvaluationService@evaluate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::acceptSuggestions",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@acceptSuggestions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::acceptWithModifications",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@acceptWithModifications",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::bulkRescan",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@bulkRescan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::collectRolePairs",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@collectRolePairs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::generateSuggestions",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@generateSuggestions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/SuccessionReadinessService.php::App\\Services\\Promotion\\SuccessionReadinessService::analyze",
        "fqmn": "App\\Services\\Promotion\\SuccessionReadinessService@analyze",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/SuccessionReadinessService.php::App\\Services\\Promotion\\SuccessionReadinessService::createTransitionTask",
        "fqmn": "App\\Services\\Promotion\\SuccessionReadinessService@createTransitionTask",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/TeamLeaderRecommendationService.php::App\\Services\\Promotion\\TeamLeaderRecommendationService::forTarget",
        "fqmn": "App\\Services\\Promotion\\TeamLeaderRecommendationService@forTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/TeamLeaderRecommendationService.php::App\\Services\\Promotion\\TeamLeaderRecommendationService::record",
        "fqmn": "App\\Services\\Promotion\\TeamLeaderRecommendationService@record",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Promotion/TeamLeaderRecommendationService.php::App\\Services\\Promotion\\TeamLeaderRecommendationService::renderInlineSummary",
        "fqmn": "App\\Services\\Promotion\\TeamLeaderRecommendationService@renderInlineSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PromptGeneratorService.php::App\\Services\\PromptGeneratorService::prompts",
        "fqmn": "App\\Services\\PromptGeneratorService@prompts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ProrationService.php::App\\Services\\ProrationService::calculatePlanChange",
        "fqmn": "App\\Services\\ProrationService@calculatePlanChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::__construct",
        "fqmn": "App\\Services\\PushService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::sendToSubscriptions",
        "fqmn": "App\\Services\\PushService@sendToSubscriptions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::sendToUser",
        "fqmn": "App\\Services\\PushService@sendToUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RaiseNotifier.php::App\\Services\\RaiseNotifier::sendApproved",
        "fqmn": "App\\Services\\RaiseNotifier@sendApproved",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RaiseNotifier.php::App\\Services\\RaiseNotifier::sendDeclined",
        "fqmn": "App\\Services\\RaiseNotifier@sendDeclined",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RaiseService.php::App\\Services\\RaiseService::evaluate",
        "fqmn": "App\\Services\\RaiseService@evaluate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getComparisons",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getComparisons",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getKpis",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getKpis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getRecognitionOutcomeCorrelation",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getRecognitionOutcomeCorrelation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::canGive",
        "fqmn": "App\\Services\\RecognitionPolicyService@canGive",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::forCompany",
        "fqmn": "App\\Services\\RecognitionPolicyService@forCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::giverUserIds",
        "fqmn": "App\\Services\\RecognitionPolicyService@giverUserIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::metadataBlock",
        "fqmn": "App\\Services\\RecognitionPolicyService@metadataBlock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::userRole",
        "fqmn": "App\\Services\\RecognitionPolicyService@userRole",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::userRoles",
        "fqmn": "App\\Services\\RecognitionPolicyService@userRoles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionPredictionService.php::App\\Services\\RecognitionPredictionService::computeForScope",
        "fqmn": "App\\Services\\RecognitionPredictionService@computeForScope",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionProgressService.php::App\\Services\\RecognitionProgressService::build",
        "fqmn": "App\\Services\\RecognitionProgressService@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::__construct",
        "fqmn": "App\\Services\\RecognitionService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::addComment",
        "fqmn": "App\\Services\\RecognitionService@addComment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::addReaction",
        "fqmn": "App\\Services\\RecognitionService@addReaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::createRecognition",
        "fqmn": "App\\Services\\RecognitionService@createRecognition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::getFeedForCompany",
        "fqmn": "App\\Services\\RecognitionService@getFeedForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::removeReaction",
        "fqmn": "App\\Services\\RecognitionService@removeReaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::getMonthlyTarget",
        "fqmn": "App\\Services\\RecognitionTargetService@getMonthlyTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::resolveTargetForDate",
        "fqmn": "App\\Services\\RecognitionTargetService@resolveTargetForDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::setMonthlyTarget",
        "fqmn": "App\\Services\\RecognitionTargetService@setMonthlyTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RedisLockService.php::App\\Services\\RedisLockService::runWithLock",
        "fqmn": "App\\Services\\RedisLockService@runWithLock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::approvalDeadline",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@approvalDeadline",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::buildConflicts",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::buildScoreBreakdown",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildScoreBreakdown",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::humanSlot",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@humanSlot",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::lastRewardedDate",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@lastRewardedDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::policySummary",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@policySummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::tenureDays",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@tenureDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardNotifier.php::App\\Services\\RewardNotifier::sendApprovalRequest",
        "fqmn": "App\\Services\\RewardNotifier@sendApprovalRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardNotifier.php::App\\Services\\RewardNotifier::sendWinnerNotice",
        "fqmn": "App\\Services\\RewardNotifier@sendWinnerNotice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Rewards/RewardsStatement.php::App\\Services\\Rewards\\RewardsStatement::build",
        "fqmn": "App\\Services\\Rewards\\RewardsStatement@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardService.php::App\\Services\\RewardService::computeWeeklyWinners",
        "fqmn": "App\\Services\\RewardService@computeWeeklyWinners",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardService.php::App\\Services\\RewardService::persistGrants",
        "fqmn": "App\\Services\\RewardService@persistGrants",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardsExpenseRecognitionService.php::App\\Services\\RewardsExpenseRecognitionService::recognizeForOrder",
        "fqmn": "App\\Services\\RewardsExpenseRecognitionService@recognizeForOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardsExpenseRecognitionService.php::App\\Services\\RewardsExpenseRecognitionService::reverseForRefund",
        "fqmn": "App\\Services\\RewardsExpenseRecognitionService@reverseForRefund",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardsLiabilityAgingService.php::App\\Services\\RewardsLiabilityAgingService::ageForCompany",
        "fqmn": "App\\Services\\RewardsLiabilityAgingService@ageForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RewardsLiabilityAgingService.php::App\\Services\\RewardsLiabilityAgingService::outstandingPointsForCompany",
        "fqmn": "App\\Services\\RewardsLiabilityAgingService@outstandingPointsForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/RfqSubmissionService.php::App\\Services\\RfqSubmissionService::submit",
        "fqmn": "App\\Services\\RfqSubmissionService@submit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::__construct",
        "fqmn": "App\\Services\\SalesCommissionService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::approveCommission",
        "fqmn": "App\\Services\\SalesCommissionService@approveCommission",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::createCommissionFromInvoice",
        "fqmn": "App\\Services\\SalesCommissionService@createCommissionFromInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::getTotalCommissions",
        "fqmn": "App\\Services\\SalesCommissionService@getTotalCommissions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::getTotalPayments",
        "fqmn": "App\\Services\\SalesCommissionService@getTotalPayments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::markCommissionAsPaid",
        "fqmn": "App\\Services\\SalesCommissionService@markCommissionAsPaid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ShipmentService.php::App\\Services\\ShipmentService::__construct",
        "fqmn": "App\\Services\\ShipmentService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ShipmentService.php::App\\Services\\ShipmentService::createOrderShipments",
        "fqmn": "App\\Services\\ShipmentService@createOrderShipments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::checkStockAvailability",
        "fqmn": "App\\Services\\StockService@checkStockAvailability",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::cleanupExpiredReservations",
        "fqmn": "App\\Services\\StockService@cleanupExpiredReservations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::confirmReservations",
        "fqmn": "App\\Services\\StockService@confirmReservations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::releaseReservations",
        "fqmn": "App\\Services\\StockService@releaseReservations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::reserveStock",
        "fqmn": "App\\Services\\StockService@reserveStock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::reserveStockWithBackorder",
        "fqmn": "App\\Services\\StockService@reserveStockWithBackorder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::classify",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::draft",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@draft",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::openAiJson",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@openAiJson",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/BaselineSuggester.php::App\\Services\\StrategyAlignment\\BaselineSuggester::suggest",
        "fqmn": "App\\Services\\StrategyAlignment\\BaselineSuggester@suggest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::availableTiersFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@availableTiersFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canApproveDefinition",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveDefinition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canApproveValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canAttestOutcome",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canAttestOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canCreate",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canCreate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canEditDefinition",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canEditValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canReportValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canReportValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canResubmitValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canResubmitValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canScopeTo",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canScopeTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canViewKpi",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canViewKpi",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::departmentManagedBy",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::hasAuthorityOver",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@hasAuthorityOver",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::isDepartmentManager",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isDepartmentManager",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::isEmployeeRole",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isEmployeeRole",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::nextApproverInChain",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@nextApproverInChain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::resolveApprovalChain",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@resolveApprovalChain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::scopeOptionsFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@scopeOptionsFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::teamsLedOrManagedBy",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::userDepartmentId",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userDepartmentId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::userTeamIds",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userTeamIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiPointMinter.php::App\\Services\\StrategyAlignment\\CustomKpiPointMinter::mint",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiPointMinter@mint",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::isFirstSundayOfMonth",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::isSecondSundayOfMonth",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isSecondSundayOfMonth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::periodJustEnded",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@periodJustEnded",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::pickApproverFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@pickApproverFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::runDaily",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@runDaily",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendDue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendDue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendFirstSundayReminders",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendFirstSundayReminders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendSecondSundayReminders",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendSecondSundayReminders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::computeAchievementPercent",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@computeAchievementPercent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::computeEarnedPoints",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@computeEarnedPoints",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::isHit",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@isHit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::mintForOkrOutcome",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@mintForOkrOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::mintForValueHit",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@mintForValueHit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::available",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@available",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::earned",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@earned",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::forfeited",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@forfeited",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::forUser",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@forUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::onHold",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@onHold",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::snapshot",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@snapshot",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::spent",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@spent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::weightedPointValueHalalas",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@weightedPointValueHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::askIndustryQuestions",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@askIndustryQuestions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::draftKpis",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::draftOkrs",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftOkrs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionBillingService.php::App\\Services\\SubscriptionBillingService::calculateAmountHalalas",
        "fqmn": "App\\Services\\SubscriptionBillingService@calculateAmountHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionProvisioner.php::App\\Services\\SubscriptionProvisioner::provisionCompanyToPlanVersion",
        "fqmn": "App\\Services\\SubscriptionProvisioner@provisionCompanyToPlanVersion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::hasActiveSubscription",
        "fqmn": "App\\Services\\SubscriptionResolver@hasActiveSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::latestForCompany",
        "fqmn": "App\\Services\\SubscriptionResolver@latestForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::statusForCompany",
        "fqmn": "App\\Services\\SubscriptionResolver@statusForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::advanceGraceDays",
        "fqmn": "App\\Services\\SubscriptionStateService@advanceGraceDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::cycleEnd",
        "fqmn": "App\\Services\\SubscriptionStateService@cycleEnd",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::logTransition",
        "fqmn": "App\\Services\\SubscriptionStateService@logTransition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markActive",
        "fqmn": "App\\Services\\SubscriptionStateService@markActive",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markCancelled",
        "fqmn": "App\\Services\\SubscriptionStateService@markCancelled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markPastDue",
        "fqmn": "App\\Services\\SubscriptionStateService@markPastDue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markSuspended",
        "fqmn": "App\\Services\\SubscriptionStateService@markSuspended",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::normalizeInterval",
        "fqmn": "App\\Services\\SubscriptionStateService@normalizeInterval",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::reactivate",
        "fqmn": "App\\Services\\SubscriptionStateService@reactivate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::scheduleRetryHours",
        "fqmn": "App\\Services\\SubscriptionStateService@scheduleRetryHours",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::updateById",
        "fqmn": "App\\Services\\SubscriptionStateService@updateById",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/AmendmentService.php::App\\Services\\Succession\\AmendmentService::reopen",
        "fqmn": "App\\Services\\Succession\\AmendmentService@reopen",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/BiasAuditService.php::App\\Services\\Succession\\BiasAuditService::run",
        "fqmn": "App\\Services\\Succession\\BiasAuditService@run",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/BlindEmployeeSurveyService.php::App\\Services\\Succession\\BlindEmployeeSurveyService::dispatch",
        "fqmn": "App\\Services\\Succession\\BlindEmployeeSurveyService@dispatch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/BlindEmployeeSurveyService.php::App\\Services\\Succession\\BlindEmployeeSurveyService::submitAnswers",
        "fqmn": "App\\Services\\Succession\\BlindEmployeeSurveyService@submitAnswers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/CadencePacer.php::App\\Services\\Succession\\CadencePacer::decideAlerts",
        "fqmn": "App\\Services\\Succession\\CadencePacer@decideAlerts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Calculators/ExecutionIndexCalculator.php::App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator::__construct",
        "fqmn": "App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Calculators/ExecutionIndexCalculator.php::App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator::compute",
        "fqmn": "App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Calculators/TimeLockCalculator.php::App\\Services\\Succession\\Calculators\\TimeLockCalculator::__construct",
        "fqmn": "App\\Services\\Succession\\Calculators\\TimeLockCalculator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Calculators/TimeLockCalculator.php::App\\Services\\Succession\\Calculators\\TimeLockCalculator::compute",
        "fqmn": "App\\Services\\Succession\\Calculators\\TimeLockCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/ClawbackService.php::App\\Services\\Succession\\ClawbackService::handleResignation",
        "fqmn": "App\\Services\\Succession\\ClawbackService@handleResignation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/ClawbackService.php::App\\Services\\Succession\\ClawbackService::isBlocked",
        "fqmn": "App\\Services\\Succession\\ClawbackService@isBlocked",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/ClawbackService.php::App\\Services\\Succession\\ClawbackService::triggerClawback",
        "fqmn": "App\\Services\\Succession\\ClawbackService@triggerClawback",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/CrossCheckExecutor.php::App\\Services\\Succession\\CrossCheckExecutor::execute",
        "fqmn": "App\\Services\\Succession\\CrossCheckExecutor@execute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/CurriculumBuilderService.php::App\\Services\\Succession\\CurriculumBuilderService::startPlan",
        "fqmn": "App\\Services\\Succession\\CurriculumBuilderService@startPlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/DisputeReportGenerator.php::App\\Services\\Succession\\DisputeReportGenerator::generate",
        "fqmn": "App\\Services\\Succession\\DisputeReportGenerator@generate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Evaluators/NullMetricEvaluator.php::App\\Services\\Succession\\Evaluators\\NullMetricEvaluator::evaluate",
        "fqmn": "App\\Services\\Succession\\Evaluators\\NullMetricEvaluator@evaluate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/GptSnapshotRecorder.php::App\\Services\\Succession\\GptSnapshotRecorder::call",
        "fqmn": "App\\Services\\Succession\\GptSnapshotRecorder@call",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validate",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validateCurriculum",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validateCurriculum",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validateMilestonesIndividually",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validateMilestonesIndividually",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::all",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@all",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::exists",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::forLocale",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@forLocale",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::get",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@get",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::isNative",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@isNative",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::nativeKeys",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@nativeKeys",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::requiresIntegration",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@requiresIntegration",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalogGapLogger.php::App\\Services\\Succession\\MetricCatalogGapLogger::record",
        "fqmn": "App\\Services\\Succession\\MetricCatalogGapLogger@record",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/MilestoneBindingRewriter.php::App\\Services\\Succession\\MilestoneBindingRewriter::rewrite",
        "fqmn": "App\\Services\\Succession\\MilestoneBindingRewriter@rewrite",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/OverrideLogger.php::App\\Services\\Succession\\OverrideLogger::bypassAlgorithm",
        "fqmn": "App\\Services\\Succession\\OverrideLogger@bypassAlgorithm",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/PipelineStatusService.php::App\\Services\\Succession\\PipelineStatusService::forCompany",
        "fqmn": "App\\Services\\Succession\\PipelineStatusService@forCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/PipelineStatusService.php::App\\Services\\Succession\\PipelineStatusService::oneLiner",
        "fqmn": "App\\Services\\Succession\\PipelineStatusService@oneLiner",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/PromotionAuditWriter.php::App\\Services\\Succession\\PromotionAuditWriter::recordComputation",
        "fqmn": "App\\Services\\Succession\\PromotionAuditWriter@recordComputation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/PromotionValidationScoreService.php::App\\Services\\Succession\\PromotionValidationScoreService::evaluate",
        "fqmn": "App\\Services\\Succession\\PromotionValidationScoreService@evaluate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/PromotionValidationScoreService.php::App\\Services\\Succession\\PromotionValidationScoreService::evaluateWithWeightOverride",
        "fqmn": "App\\Services\\Succession\\PromotionValidationScoreService@evaluateWithWeightOverride",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseRecognitionGraphProvider.php::App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider::edges",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider@edges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseTaskBadgeProvider.php::App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider::earnedBadgeIds",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider@earnedBadgeIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseTenureProvider.php::App\\Services\\Succession\\Providers\\DatabaseTenureProvider::trustSeedUserIds",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseTenureProvider@trustSeedUserIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::__construct",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::companyTargetDistribution",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@companyTargetDistribution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::currentTargetId",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@currentTargetId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::employeeDistribution",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@employeeDistribution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/QuarterlyOverrideExporter.php::App\\Services\\Succession\\QuarterlyOverrideExporter::collect",
        "fqmn": "App\\Services\\Succession\\QuarterlyOverrideExporter@collect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/QuarterlyOverrideExporter.php::App\\Services\\Succession\\QuarterlyOverrideExporter::toCsv",
        "fqmn": "App\\Services\\Succession\\QuarterlyOverrideExporter@toCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/QuestCompletionDetector.php::App\\Services\\Succession\\QuestCompletionDetector::sweep",
        "fqmn": "App\\Services\\Succession\\QuestCompletionDetector@sweep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/RejectionQuestService.php::App\\Services\\Succession\\RejectionQuestService::generateForRejection",
        "fqmn": "App\\Services\\Succession\\RejectionQuestService@generateForRejection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/SuccessionGptClient.php::App\\Services\\Succession\\SuccessionGptClient::generateCurriculum",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculum",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/SuccessionGptClient.php::App\\Services\\Succession\\SuccessionGptClient::generateCurriculumWithRetry",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculumWithRetry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/SuccessionPointsService.php::App\\Services\\Succession\\SuccessionPointsService::creditMilestoneCompletion",
        "fqmn": "App\\Services\\Succession\\SuccessionPointsService@creditMilestoneCompletion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Succession/SuccessorSelfScoreCalculator.php::App\\Services\\Succession\\SuccessorSelfScoreCalculator::recompute",
        "fqmn": "App\\Services\\Succession\\SuccessorSelfScoreCalculator@recompute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Summaries/KpiSummaryBuilder.php::App\\Services\\Summaries\\KpiSummaryBuilder::build",
        "fqmn": "App\\Services\\Summaries\\KpiSummaryBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Summaries/OkrSummaryBuilder.php::App\\Services\\Summaries\\OkrSummaryBuilder::build",
        "fqmn": "App\\Services\\Summaries\\OkrSummaryBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::analyzeOcrResults",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@analyzeOcrResults",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::generateWorkflowSummary",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@generateWorkflowSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::getReviewPriority",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@getReviewPriority",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::processInvoiceReview",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@processInvoiceReview",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::suggestFieldCorrections",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@suggestFieldCorrections",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/SupplierTaxInvoiceService.php::App\\Services\\SupplierTaxInvoiceService::issueForOrder",
        "fqmn": "App\\Services\\SupplierTaxInvoiceService@issueForOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TalentInsightsService.php::App\\Services\\TalentInsightsService::__construct",
        "fqmn": "App\\Services\\TalentInsightsService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TalentInsightsService.php::App\\Services\\TalentInsightsService::getTalent",
        "fqmn": "App\\Services\\TalentInsightsService@getTalent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getLeaderWeightHistory",
        "fqmn": "App\\Services\\TalentModelService@getLeaderWeightHistory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getLeaderWeightsMeta",
        "fqmn": "App\\Services\\TalentModelService@getLeaderWeightsMeta",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getRiskWeights",
        "fqmn": "App\\Services\\TalentModelService@getRiskWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getRiskWeightsMeta",
        "fqmn": "App\\Services\\TalentModelService@getRiskWeightsMeta",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::__construct",
        "fqmn": "App\\Services\\TapClient@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::createCharge",
        "fqmn": "App\\Services\\TapClient@createCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::getCharge",
        "fqmn": "App\\Services\\TapClient@getCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::listCharges",
        "fqmn": "App\\Services\\TapClient@listCharges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::make",
        "fqmn": "App\\Services\\TapClient@make",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::refundCharge",
        "fqmn": "App\\Services\\TapClient@refundCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TapWebhookHandler.php::App\\Services\\TapWebhookHandler::handle",
        "fqmn": "App\\Services\\TapWebhookHandler@handle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TasksAnalyticsService.php::App\\Services\\TasksAnalyticsService::compute",
        "fqmn": "App\\Services\\TasksAnalyticsService@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TasksAnalyticsService.php::App\\Services\\TasksAnalyticsService::monthlyRollup",
        "fqmn": "App\\Services\\TasksAnalyticsService@monthlyRollup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::computeFromNetCents",
        "fqmn": "App\\Services\\TaxService@computeFromNetCents",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::computeFromNetHalalas",
        "fqmn": "App\\Services\\TaxService@computeFromNetHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRateBps",
        "fqmn": "App\\Services\\TaxService@getVatRateBps",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRateDecimal",
        "fqmn": "App\\Services\\TaxService@getVatRateDecimal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRatePercent",
        "fqmn": "App\\Services\\TaxService@getVatRatePercent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::splitInclusiveTotalCents",
        "fqmn": "App\\Services\\TaxService@splitInclusiveTotalCents",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::splitInclusiveTotalHalalas",
        "fqmn": "App\\Services\\TaxService@splitInclusiveTotalHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/TeamProductivityService.php::App\\Services\\TeamProductivityService::getTeamProductivityIndex",
        "fqmn": "App\\Services\\TeamProductivityService@getTeamProductivityIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/VatReturnService.php::App\\Services\\VatReturnService::quarterRange",
        "fqmn": "App\\Services\\VatReturnService@quarterRange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/VatReturnService.php::App\\Services\\VatReturnService::renderCsv",
        "fqmn": "App\\Services\\VatReturnService@renderCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/VatReturnService.php::App\\Services\\VatReturnService::renderXml",
        "fqmn": "App\\Services\\VatReturnService@renderXml",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/VatReturnService.php::App\\Services\\VatReturnService::summarize",
        "fqmn": "App\\Services\\VatReturnService@summarize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetDataResolver.php::App\\Services\\WidgetDataResolver::resolve",
        "fqmn": "App\\Services\\WidgetDataResolver@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetDataResolver.php::App\\Services\\WidgetDataResolver::valueForKey",
        "fqmn": "App\\Services\\WidgetDataResolver@valueForKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::categorize",
        "fqmn": "App\\Services\\WidgetMatrixService@categorize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::filterByClassification",
        "fqmn": "App\\Services\\WidgetMatrixService@filterByClassification",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::filterByUiContainer",
        "fqmn": "App\\Services\\WidgetMatrixService@filterByUiContainer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::getByCanonical",
        "fqmn": "App\\Services\\WidgetMatrixService@getByCanonical",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::getEnabled",
        "fqmn": "App\\Services\\WidgetMatrixService@getEnabled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::groupByUiContainer",
        "fqmn": "App\\Services\\WidgetMatrixService@groupByUiContainer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::hasProTier",
        "fqmn": "App\\Services\\WidgetMatrixService@hasProTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AbstractReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AfterHoursPercentageWidget.php::App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AttachmentRateWidget.php::App\\Services\\Widgets\\Analytics\\AttachmentRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AttritionRiskByTenureWidget.php::App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AvgRecencyWidget.php::App\\Services\\Widgets\\Analytics\\AvgRecencyWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AvgRecencyWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/BadgesEarnedWindowedWidget.php::App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/BadgeTargetsCompletionWidget.php::App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/BadgeTargetsWidget.php::App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/BridgeEmployeesWidget.php::App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/EngagementHealthSummariesWidget.php::App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget::backtest",
        "fqmn": "App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget@backtest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/GiniCoefficientWidget.php::App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/GiniCoefficientWidget.php::App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/GiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\GiverCoverageWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/GiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\GiverCoverageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/InternalMobilityRateWidget.php::App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerBudgetUtilizationWidget.php::App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerResponseRateWidget.php::App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerVelocityWidget.php::App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/NetworkIsolationWidget.php::App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget::calculateNetworkSnapshots",
        "fqmn": "App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget@calculateNetworkSnapshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/OkrMomentumForecastWidget.php::App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/PeerToPeerRatioWidget.php::App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/PointsEarnedWindowedWidget.php::App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ReceiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ReceiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\ReciprocityWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\ReciprocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/RecognitionEquityWidget.php::App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/RecognitionOutcomeCorrelationWidget.php::App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/RetentionRateWidget.php::App\\Services\\Widgets\\Analytics\\RetentionRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RetentionRateWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/SilentDaysMapWidget.php::App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/SilentDaysMapWidget.php::App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/TaskAnalyticsWidget.php::App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/TaskMonthlyRollupWidget.php::App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/TimeToFirstReactionWidget.php::App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/Top10ShareWidget.php::App\\Services\\Widgets\\Analytics\\Top10ShareWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/Top10ShareWidget.php::App\\Services\\Widgets\\Analytics\\Top10ShareWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/UnderRecognizedHighProducersWidget.php::App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/UnderRecognizedHighProducersWidget.php::App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ValueAdoptionWidget.php::App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/WeekendWeekdayRatioWidget.php::App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::clearSnapshotCache",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@clearSnapshotCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::warmSnapshotCache",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@warmSnapshotCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::clearResolveCache",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@clearResolveCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::requestCache",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@requestCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveDeduped",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveDeduped",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveHeadcount",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveHeadcount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveScope",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveScope",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveWindow",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveWindowWithTz",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveWindowWithTz",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::widgetCacheKey",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@widgetCacheKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::window",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@window",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/DrilldownSignalDetector.php::App\\Services\\Widgets\\DrilldownSignalDetector::hasAcData",
        "fqmn": "App\\Services\\Widgets\\DrilldownSignalDetector@hasAcData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/DrilldownSignalDetector.php::App\\Services\\Widgets\\DrilldownSignalDetector::resolveSignalType",
        "fqmn": "App\\Services\\Widgets\\DrilldownSignalDetector@resolveSignalType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Engines/NetworkIsolationEngine.php::App\\Services\\Widgets\\Engines\\NetworkIsolationEngine::run",
        "fqmn": "App\\Services\\Widgets\\Engines\\NetworkIsolationEngine@run",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Engines/TimelinessEngine.php::App\\Services\\Widgets\\Engines\\TimelinessEngine::run",
        "fqmn": "App\\Services\\Widgets\\Engines\\TimelinessEngine@run",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Predictive/BehaviorDriversWidget.php::App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Predictive/EngagementForecastWidget.php::App\\Services\\Widgets\\Predictive\\EngagementForecastWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\EngagementForecastWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Predictive/PromotionReadinessWidget.php::App\\Services\\Widgets\\Predictive\\PromotionReadinessWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\PromotionReadinessWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Widgets/Predictive/TeamStabilityIndexWidget.php::App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::__construct",
        "fqmn": "App\\Services\\ZeptoMailService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::getStatus",
        "fqmn": "App\\Services\\ZeptoMailService@getStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::isEnabled",
        "fqmn": "App\\Services\\ZeptoMailService@isEnabled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendBulkEmails",
        "fqmn": "App\\Services\\ZeptoMailService@sendBulkEmails",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendEmail",
        "fqmn": "App\\Services\\ZeptoMailService@sendEmail",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::claimNextPending",
        "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@claimNextPending",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::enqueue",
        "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@enqueue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::process",
        "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@process",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::recoverStale",
        "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@recoverStale",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::__construct",
        "fqmn": "App\\Services\\ZohoBooksService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::accessToken",
        "fqmn": "App\\Services\\ZohoBooksService@accessToken",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::applyCreditNoteToInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@applyCreditNoteToInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::applyExistingCustomerAdvanceToInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@applyExistingCustomerAdvanceToInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::applyPaymentToInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@applyPaymentToInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::buildCompanyContactFingerprint",
        "fqmn": "App\\Services\\ZohoBooksService@buildCompanyContactFingerprint",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::cloneInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@cloneInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createCreditNoteForInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@createCreditNoteForInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createCreditNoteForInvoiceWithTotals",
        "fqmn": "App\\Services\\ZohoBooksService@createCreditNoteForInvoiceWithTotals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createCustomerAdvance",
        "fqmn": "App\\Services\\ZohoBooksService@createCustomerAdvance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@createInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createInvoiceWithMetadata",
        "fqmn": "App\\Services\\ZohoBooksService@createInvoiceWithMetadata",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createInvoiceWithTotals",
        "fqmn": "App\\Services\\ZohoBooksService@createInvoiceWithTotals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createJournalEntry",
        "fqmn": "App\\Services\\ZohoBooksService@createJournalEntry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createPurchaseOrder",
        "fqmn": "App\\Services\\ZohoBooksService@createPurchaseOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createVendorBill",
        "fqmn": "App\\Services\\ZohoBooksService@createVendorBill",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createVendorPaymentAndApply",
        "fqmn": "App\\Services\\ZohoBooksService@createVendorPaymentAndApply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::dbOrConfig",
        "fqmn": "App\\Services\\ZohoBooksService@dbOrConfig",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::downloadCustomerAdvancePdf",
        "fqmn": "App\\Services\\ZohoBooksService@downloadCustomerAdvancePdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::downloadInvoicePdf",
        "fqmn": "App\\Services\\ZohoBooksService@downloadInvoicePdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::downloadPurchaseOrderPdf",
        "fqmn": "App\\Services\\ZohoBooksService@downloadPurchaseOrderPdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureCompanyConfiguredId",
        "fqmn": "App\\Services\\ZohoBooksService@ensureCompanyConfiguredId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureContact",
        "fqmn": "App\\Services\\ZohoBooksService@ensureContact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureTaxForPercentage",
        "fqmn": "App\\Services\\ZohoBooksService@ensureTaxForPercentage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureVendor",
        "fqmn": "App\\Services\\ZohoBooksService@ensureVendor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::extractZatcaUuidPih",
        "fqmn": "App\\Services\\ZohoBooksService@extractZatcaUuidPih",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::findInvoiceIdByNumber",
        "fqmn": "App\\Services\\ZohoBooksService@findInvoiceIdByNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::getCustomerAdvances",
        "fqmn": "App\\Services\\ZohoBooksService@getCustomerAdvances",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::getInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@getInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::getUnpaidInvoices",
        "fqmn": "App\\Services\\ZohoBooksService@getUnpaidInvoices",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::listCompanies",
        "fqmn": "App\\Services\\ZohoBooksService@listCompanies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::listCreditNotesForInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@listCreditNotesForInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::listInvoicesModifiedSince",
        "fqmn": "App\\Services\\ZohoBooksService@listInvoicesModifiedSince",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::markInvoiceAsSent",
        "fqmn": "App\\Services\\ZohoBooksService@markInvoiceAsSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::markPurchaseOrderAsIssued",
        "fqmn": "App\\Services\\ZohoBooksService@markPurchaseOrderAsIssued",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::recordPayment",
        "fqmn": "App\\Services\\ZohoBooksService@recordPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::refundCustomerPayment",
        "fqmn": "App\\Services\\ZohoBooksService@refundCustomerPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::resolveAccountIdByName",
        "fqmn": "App\\Services\\ZohoBooksService@resolveAccountIdByName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::syncInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@syncInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::uploadBillAttachment",
        "fqmn": "App\\Services\\ZohoBooksService@uploadBillAttachment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::upsertCompanyContact",
        "fqmn": "App\\Services\\ZohoBooksService@upsertCompanyContact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::upsertItem",
        "fqmn": "App\\Services\\ZohoBooksService@upsertItem",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::voidCreditNote",
        "fqmn": "App\\Services\\ZohoBooksService@voidCreditNote",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateAdvance",
        "fqmn": "App\\Services\\ZohoDataValidator@validateAdvance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateCompanyForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateCompanyForZoho",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateContact",
        "fqmn": "App\\Services\\ZohoDataValidator@validateContact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateInvoice",
        "fqmn": "App\\Services\\ZohoDataValidator@validateInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateOrderForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateOrderForZoho",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validatePaymentApplication",
        "fqmn": "App\\Services\\ZohoDataValidator@validatePaymentApplication",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateProductForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateProductForZoho",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validatePurchaseOrder",
        "fqmn": "App\\Services\\ZohoDataValidator@validatePurchaseOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::__construct",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::checkHealth",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@checkHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::performHealthCheck",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@performHealthCheck",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::sendAlert",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@sendAlert",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::diffInBusinessDays",
        "fqmn": "App\\Support\\BusinessTimeCalculator@diffInBusinessDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::diffInMinutes",
        "fqmn": "App\\Support\\BusinessTimeCalculator@diffInMinutes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::resolveSettings",
        "fqmn": "App\\Support\\BusinessTimeCalculator@resolveSettings",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/EmailTemplateCatalog.php::App\\Support\\EmailTemplateCatalog::all",
        "fqmn": "App\\Support\\EmailTemplateCatalog@all",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/EmployerNav.php::App\\Support\\EmployerNav::groups",
        "fqmn": "App\\Support\\EmployerNav@groups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/EmployerNav.php::App\\Support\\EmployerNav::items",
        "fqmn": "App\\Support\\EmployerNav@items",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::expand",
        "fqmn": "App\\Support\\FeatureBundles@expand",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::expandBooleans",
        "fqmn": "App\\Support\\FeatureBundles@expandBooleans",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::map",
        "fqmn": "App\\Support\\FeatureBundles@map",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureGateViewData.php::App\\Support\\FeatureGateViewData::compute",
        "fqmn": "App\\Support\\FeatureGateViewData@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::activate",
        "fqmn": "App\\Support\\FeaturePreview@activate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::activeWindow",
        "fqmn": "App\\Support\\FeaturePreview@activeWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::canActivateNow",
        "fqmn": "App\\Support\\FeaturePreview@canActivateNow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::canStartNowForUser",
        "fqmn": "App\\Support\\FeaturePreview@canStartNowForUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::eligible",
        "fqmn": "App\\Support\\FeaturePreview@eligible",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::isEligibleRole",
        "fqmn": "App\\Support\\FeaturePreview@isEligibleRole",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::start",
        "fqmn": "App\\Support\\FeaturePreview@start",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::all",
        "fqmn": "App\\Support\\FeatureRegistry@all",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::exists",
        "fqmn": "App\\Support\\FeatureRegistry@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::isPreviewable",
        "fqmn": "App\\Support\\FeatureRegistry@isPreviewable",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::allSlugs",
        "fqmn": "App\\Support\\Features\\FeatureGroups@allSlugs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::formPathsForGroup",
        "fqmn": "App\\Support\\Features\\FeatureGroups@formPathsForGroup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::groups",
        "fqmn": "App\\Support\\Features\\FeatureGroups@groups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::masterChildren",
        "fqmn": "App\\Support\\Features\\FeatureGroups@masterChildren",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::masterPaths",
        "fqmn": "App\\Support\\Features\\FeatureGroups@masterPaths",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::computeMasters",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::flattenOverrides",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@flattenOverrides",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::groupOverrides",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@groupOverrides",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::toBool",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@toBool",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::all",
        "fqmn": "App\\Support\\Features\\Features@all",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::allSlugs",
        "fqmn": "App\\Support\\Features\\Features@allSlugs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::bundleAliasSlugs",
        "fqmn": "App\\Support\\Features\\Features@bundleAliasSlugs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::exists",
        "fqmn": "App\\Support\\Features\\Features@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::formPathsForGroup",
        "fqmn": "App\\Support\\Features\\Features@formPathsForGroup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::groupAliases",
        "fqmn": "App\\Support\\Features\\Features@groupAliases",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::groups",
        "fqmn": "App\\Support\\Features\\Features@groups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::isPreviewable",
        "fqmn": "App\\Support\\Features\\Features@isPreviewable",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::masterChildren",
        "fqmn": "App\\Support\\Features\\Features@masterChildren",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::masterPaths",
        "fqmn": "App\\Support\\Features\\Features@masterPaths",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureToggleSchemas.php::App\\Support\\Features\\FeatureToggleSchemas::connectGroup",
        "fqmn": "App\\Support\\Features\\FeatureToggleSchemas@connectGroup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Features/FeatureToggleSchemas.php::App\\Support\\Features\\FeatureToggleSchemas::freeSubscriptionGroups",
        "fqmn": "App\\Support\\Features\\FeatureToggleSchemas@freeSubscriptionGroups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureToggleForm.php::App\\Support\\FeatureToggleForm::schema",
        "fqmn": "App\\Support\\FeatureToggleForm@schema",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::canEditPage",
        "fqmn": "App\\Support\\FeatureVisibility@canEditPage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::canSeeField",
        "fqmn": "App\\Support\\FeatureVisibility@canSeeField",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::deriveFeatureSlugFromEmployerNav",
        "fqmn": "App\\Support\\FeatureVisibility@deriveFeatureSlugFromEmployerNav",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::canAccessClass",
        "fqmn": "App\\Support\\GateManifest@canAccessClass",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::check",
        "fqmn": "App\\Support\\GateManifest@check",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::entryFor",
        "fqmn": "App\\Support\\GateManifest@entryFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::featureKeyFor",
        "fqmn": "App\\Support\\GateManifest@featureKeyFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::fieldFeatureKeyFor",
        "fqmn": "App\\Support\\GateManifest@fieldFeatureKeyFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::groupKeysForPanel",
        "fqmn": "App\\Support\\GateManifest@groupKeysForPanel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::navItemsForPanel",
        "fqmn": "App\\Support\\GateManifest@navItemsForPanel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::resolvePromotionUrl",
        "fqmn": "App\\Support\\GateManifest@resolvePromotionUrl",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::visibleToRole",
        "fqmn": "App\\Support\\GateManifest@visibleToRole",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GuidedBadges.php::App\\Support\\GuidedBadges::templates",
        "fqmn": "App\\Support\\GuidedBadges@templates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/GuidedCompanyValues.php::App\\Support\\GuidedCompanyValues::templates",
        "fqmn": "App\\Support\\GuidedCompanyValues@templates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::derivePanelFromPath",
        "fqmn": "App\\Support\\Help@derivePanelFromPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::findRelevantByPath",
        "fqmn": "App\\Support\\Help@findRelevantByPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::formatFewshots",
        "fqmn": "App\\Support\\Help@formatFewshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadCapabilities",
        "fqmn": "App\\Support\\Help@loadCapabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadFewshots",
        "fqmn": "App\\Support\\Help@loadFewshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadWorkflows",
        "fqmn": "App\\Support\\Help@loadWorkflows",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::pickFewshotsForPath",
        "fqmn": "App\\Support\\Help@pickFewshotsForPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::pickWorkflowsForPath",
        "fqmn": "App\\Support\\Help@pickWorkflowsForPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::saveFewshots",
        "fqmn": "App\\Support\\Help@saveFewshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::saveWorkflows",
        "fqmn": "App\\Support\\Help@saveWorkflows",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::summarizeCapability",
        "fqmn": "App\\Support\\Help@summarizeCapability",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::hrefFor",
        "fqmn": "App\\Support\\HelpId@hrefFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::idFor",
        "fqmn": "App\\Support\\HelpId@idFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::keys",
        "fqmn": "App\\Support\\HelpId@keys",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::manifest",
        "fqmn": "App\\Support\\HelpId@manifest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::get",
        "fqmn": "App\\Support\\HelpMemory@get",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::hasCoveredAll",
        "fqmn": "App\\Support\\HelpMemory@hasCoveredAll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::put",
        "fqmn": "App\\Support\\HelpMemory@put",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::rememberCategories",
        "fqmn": "App\\Support\\HelpMemory@rememberCategories",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HelpTickets.php::App\\Support\\HelpTickets::log",
        "fqmn": "App\\Support\\HelpTickets@log",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/HireReadinessAccess.php::App\\Support\\HireReadinessAccess::canAccess",
        "fqmn": "App\\Support\\HireReadinessAccess@canAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/JobsAccess.php::App\\Support\\JobsAccess::canAccess",
        "fqmn": "App\\Support\\JobsAccess@canAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/JobsAccess.php::App\\Support\\JobsAccess::ensure",
        "fqmn": "App\\Support\\JobsAccess@ensure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/LandingResolver.php::App\\Support\\LandingResolver::resolveLandingPath",
        "fqmn": "App\\Support\\LandingResolver@resolveLandingPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/LandingResolver.php::App\\Support\\LandingResolver::setActiveCompanyContext",
        "fqmn": "App\\Support\\LandingResolver@setActiveCompanyContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatDateTime",
        "fqmn": "App\\Support\\Locale@formatDateTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatNumber",
        "fqmn": "App\\Support\\Locale@formatNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatPercent",
        "fqmn": "App\\Support\\Locale@formatPercent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::assertLogged",
        "fqmn": "App\\Support\\Logging\\LogFake@assertLogged",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::assertNotLogged",
        "fqmn": "App\\Support\\Logging\\LogFake@assertNotLogged",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::channel",
        "fqmn": "App\\Support\\Logging\\LogFake@channel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::fake",
        "fqmn": "App\\Support\\Logging\\LogFake@fake",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::logged",
        "fqmn": "App\\Support\\Logging\\LogFake@logged",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::stack",
        "fqmn": "App\\Support\\Logging\\LogFake@stack",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::__construct",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPath",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPathForConversions",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForConversions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPathForResponsiveImages",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForResponsiveImages",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/MetricContract.php::App\\Support\\MetricContract::factory",
        "fqmn": "App\\Support\\MetricContract@factory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/MetricContract.php::App\\Support\\MetricContract::validate",
        "fqmn": "App\\Support\\MetricContract@validate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Money.php::App\\Support\\Money::formatSarFromHalalas",
        "fqmn": "App\\Support\\Money@formatSarFromHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Money.php::App\\Support\\Money::halalasFromSar",
        "fqmn": "App\\Support\\Money@halalasFromSar",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/MoneyFormatter.php::App\\Support\\MoneyFormatter::format",
        "fqmn": "App\\Support\\MoneyFormatter@format",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/MoneyFormatter.php::App\\Support\\MoneyFormatter::halalas",
        "fqmn": "App\\Support\\MoneyFormatter@halalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/MoneyFormatter.php::App\\Support\\MoneyFormatter::halalasNumber",
        "fqmn": "App\\Support\\MoneyFormatter@halalasNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildAdminGroups",
        "fqmn": "App\\Support\\NavBuilder@buildAdminGroups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildAdminItems",
        "fqmn": "App\\Support\\NavBuilder@buildAdminItems",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildGroups",
        "fqmn": "App\\Support\\NavBuilder@buildGroups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildItems",
        "fqmn": "App\\Support\\NavBuilder@buildItems",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/NavSeen.php::App\\Support\\NavSeen::getLastSeen",
        "fqmn": "App\\Support\\NavSeen@getLastSeen",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/NavSeen.php::App\\Support\\NavSeen::markSeen",
        "fqmn": "App\\Support\\NavSeen@markSeen",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Notifications/NotificationSender.php::App\\Support\\Notifications\\NotificationSender::sendForSubscriptionEvent",
        "fqmn": "App\\Support\\Notifications\\NotificationSender@sendForSubscriptionEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/FeatureCatalog.php::App\\Support\\PlanVersions\\FeatureCatalog::seats",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@seats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/FeatureCatalog.php::App\\Support\\PlanVersions\\FeatureCatalog::trial",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@trial",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::collect",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persist",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persist",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persistAcrossIntervals",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persistAcrossIntervals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persistFromBooleans",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persistFromBooleans",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::prefill",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@prefill",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::collectFormMeta",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@collectFormMeta",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::extractSeatLimits",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractSeatLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::extractTrialDays",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractTrialDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::prefillFormDefaults",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@prefillFormDefaults",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::sync",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@sync",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::canAccess",
        "fqmn": "App\\Support\\RefreshmentsAccess@canAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::canNavigate",
        "fqmn": "App\\Support\\RefreshmentsAccess@canNavigate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::ensure",
        "fqmn": "App\\Support\\RefreshmentsAccess@ensure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::__construct",
        "fqmn": "App\\Support\\ResettingUserQuery@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::count",
        "fqmn": "App\\Support\\ResettingUserQuery@count",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::exists",
        "fqmn": "App\\Support\\ResettingUserQuery@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::where",
        "fqmn": "App\\Support\\ResettingUserQuery@where",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/RewardsAccess.php::App\\Support\\RewardsAccess::isEnabled",
        "fqmn": "App\\Support\\RewardsAccess@isEnabled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/RewardsAccess.php::App\\Support\\RewardsAccess::pointValueHalalas",
        "fqmn": "App\\Support\\RewardsAccess@pointValueHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Roles.php::App\\Support\\Roles::isSuperAdmin",
        "fqmn": "App\\Support\\Roles@isSuperAdmin",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Roles.php::App\\Support\\Roles::isSupplier",
        "fqmn": "App\\Support\\Roles@isSupplier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::codeToName",
        "fqmn": "App\\Support\\SaudiRegions@codeToName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::nameToCode",
        "fqmn": "App\\Support\\SaudiRegions@nameToCode",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::options",
        "fqmn": "App\\Support\\SaudiRegions@options",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Slugs/UniqueSlugGenerator.php::App\\Support\\Slugs\\UniqueSlugGenerator::generate",
        "fqmn": "App\\Support\\Slugs\\UniqueSlugGenerator@generate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Slugs/UniqueSlugGenerator.php::App\\Support\\Slugs\\UniqueSlugGenerator::slugify",
        "fqmn": "App\\Support\\Slugs\\UniqueSlugGenerator@slugify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::delete",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@delete",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::exists",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::fullPath",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@fullPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::read",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@read",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::store",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@store",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::streamDownload",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@streamDownload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/StoreAccess.php::App\\Support\\StoreAccess::canAccess",
        "fqmn": "App\\Support\\StoreAccess@canAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/StoreAccess.php::App\\Support\\StoreAccess::ensure",
        "fqmn": "App\\Support\\StoreAccess@ensure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::getManageableUsers",
        "fqmn": "App\\Support\\TeamScoping@getManageableUsers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::getManagerTeamMembers",
        "fqmn": "App\\Support\\TeamScoping@getManagerTeamMembers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::getTeamLeaderMembers",
        "fqmn": "App\\Support\\TeamScoping@getTeamLeaderMembers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::scopeTasksQuery",
        "fqmn": "App\\Support\\TeamScoping@scopeTasksQuery",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::scopeUsersQuery",
        "fqmn": "App\\Support\\TeamScoping@scopeUsersQuery",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/UserName.php::App\\Support\\UserName::render",
        "fqmn": "App\\Support\\UserName@render",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      },
      {
        "surface_id": "method::app/Support/WidgetVisualHelper.php::App\\Support\\WidgetVisualHelper::resolve",
        "fqmn": "App\\Support\\WidgetVisualHelper@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove."
      }
    ],
    "defer": [
      {
        "surface_id": "method::app/Domains/Analytics/Policy/AnalyticsPolicy.php::App\\Domains\\Analytics\\Policy\\AnalyticsPolicy::allowEquity",
        "fqmn": "App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@allowEquity",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Analytics/Policy/AnalyticsPolicy.php::App\\Domains\\Analytics\\Policy\\AnalyticsPolicy::applyConfidenceGating",
        "fqmn": "App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@applyConfidenceGating",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Decisions/ExecutiveBriefService.php::App\\Domains\\Decisions\\ExecutiveBriefService::__construct",
        "fqmn": "App\\Domains\\Decisions\\ExecutiveBriefService@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Decisions/ExecutiveBriefService.php::App\\Domains\\Decisions\\ExecutiveBriefService::weeklyBrief",
        "fqmn": "App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Classification/MetricClassificationEngine.php::App\\Domains\\Metrics\\Classification\\MetricClassificationEngine::validateClassification",
        "fqmn": "App\\Domains\\Metrics\\Classification\\MetricClassificationEngine@validateClassification",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Commands/ComputeDayCommand.php::App\\Domains\\Metrics\\Commands\\ComputeDayCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeDayCommand@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Commands/ComputeRangeCommand.php::App\\Domains\\Metrics\\Commands\\ComputeRangeCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeRangeCommand@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Commands/RefreshTodayCommand.php::App\\Domains\\Metrics\\Commands\\RefreshTodayCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\RefreshTodayCommand@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Contracts/WidgetResult.php::App\\Domains\\Metrics\\Contracts\\WidgetResult::fromSnapshotPayload",
        "fqmn": "App\\Domains\\Metrics\\Contracts\\WidgetResult@fromSnapshotPayload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceService.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceService::isSemanticChange",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceService@isSemanticChange",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceService.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceService::snapshotDefinition",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceService@snapshotDefinition",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceValidator.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator::validate",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator@validate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/CleanupOldFactsJob.php::App\\Domains\\Metrics\\Jobs\\CleanupOldFactsJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\CleanupOldFactsJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeDailyFactsJob.php::App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeDailyFactsJob.php::App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputePredictiveDailyJob.php::App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputePredictiveDailyJob.php::App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/RecomputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/RecomputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/RefreshTodayFactsJob.php::App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/RefreshTodayFactsJob.php::App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getRelations",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getRelations",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getNavigationLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPluralModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getRelations",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getRelations",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getEloquentQuery",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@shouldRegisterNavigation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource/Pages/ViewNotificationFailure.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure@infolist",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getEloquentQuery",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDeleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@shouldRegisterNavigation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getNavigationLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getRelations",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDelete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDeleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@infolist",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@shouldRegisterNavigation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/Account/MembershipStatusController.php::App\\Http\\Controllers\\Account\\MembershipStatusController::hasActiveMembership",
        "fqmn": "App\\Http\\Controllers\\Account\\MembershipStatusController@hasActiveMembership",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Account/MembershipStatusController.php::App\\Http\\Controllers\\Account\\MembershipStatusController::show",
        "fqmn": "App\\Http\\Controllers\\Account\\MembershipStatusController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::forgotPassword",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@forgotPassword",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@login",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@logout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::register",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@register",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::resendVerification",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@resendVerification",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::resetPassword",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@resetPassword",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::user",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@user",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::activate",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@activate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::audits",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@audits",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::pause",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@pause",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::runs",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@runs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BackorderController.php::App\\Http\\Controllers\\Api\\BackorderController::cancel",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderController@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BackorderEscalationController.php::App\\Http\\Controllers\\Api\\BackorderEscalationController::contactSupplier",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderEscalationController@contactSupplier",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BackorderEscalationController.php::App\\Http\\Controllers\\Api\\BackorderEscalationController::escalate",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderEscalationController@escalate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BackupController.php::App\\Http\\Controllers\\Api\\BackupController::run",
        "fqmn": "App\\Http\\Controllers\\Api\\BackupController@run",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::available",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@available",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::companyStats",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::grant",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@grant",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::stats",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::myTargets",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@myTargets",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CartValidationController.php::App\\Http\\Controllers\\Api\\CartValidationController::check",
        "fqmn": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyController.php::App\\Http\\Controllers\\Api\\CompanyController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyController.php::App\\Http\\Controllers\\Api\\CompanyController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::departments",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::teams",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@teams",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::users",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@users",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ConfigController.php::App\\Http\\Controllers\\Api\\ConfigController::config",
        "fqmn": "App\\Http\\Controllers\\Api\\ConfigController@config",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DeliveryController.php::App\\Http\\Controllers\\Api\\DeliveryController::getStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\DeliveryController@getStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@approve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::batchApprove",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@batchApprove",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::feedback",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@feedback",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::confirmType",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@confirmType",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::download",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@download",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::getClassification",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@getClassification",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::canPerformAction",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@canPerformAction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::diff",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@diff",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::updateField",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@updateField",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::getPlaceholders",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@getPlaceholders",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::preview",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::testSend",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@testSend",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Employer/BillingSnapshotController.php::App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EntitlementsController.php::App\\Http\\Controllers\\Api\\EntitlementsController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\EntitlementsController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/FeaturePreviewController.php::App\\Http\\Controllers\\Api\\FeaturePreviewController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\FeaturePreviewController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/FeaturePreviewController.php::App\\Http\\Controllers\\Api\\FeaturePreviewController::start",
        "fqmn": "App\\Http\\Controllers\\Api\\FeaturePreviewController@start",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/HealthController.php::App\\Http\\Controllers\\Api\\HealthController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::dmTest",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@dmTest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::health",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@health",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@send",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::adminJobMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@adminJobMetrics",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::companyJobMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@companyJobMetrics",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::downloadReferralCv",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@downloadReferralCv",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::getReferralInsights",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@getReferralInsights",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listAllReferrals",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listAllReferrals",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listCompanyReferrals",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listJobs",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listJobs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::storeJob",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@storeJob",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::storeReferral",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@storeReferral",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::updateJob",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@updateJob",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::updateReferralStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@updateReferralStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::resolve",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@resolve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/LeaderboardController.php::App\\Http\\Controllers\\Api\\LeaderboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\LeaderboardController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/LinkPreviewController.php::App\\Http\\Controllers\\Api\\LinkPreviewController::fetch",
        "fqmn": "App\\Http\\Controllers\\Api\\LinkPreviewController@fetch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/IntegrityController.php::App\\Http\\Controllers\\Api\\Mobile\\IntegrityController::verify",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\IntegrityController@verify",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::completeOnboarding",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@completeOnboarding",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::login",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@login",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@logout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::me",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@me",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::init",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@init",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markAllAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::markThreadRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::muteThread",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@muteThread",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::react",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@react",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::read",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@read",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showGroup",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showGroupMessages",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroupMessages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::thread",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@thread",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::threadMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@threadMetrics",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::users",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@users",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileConfigController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController::version",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController@version",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileDeviceController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileDeviceController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLeaderboardController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLogController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLogController::batch",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLogController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLogController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileMapsController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController::static",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController@static",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileProfileController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController::changePassword",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@changePassword",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileProfileController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::values",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@values",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRefreshmentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController::presets",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRefreshmentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController::request",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@request",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::invoices",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@invoices",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::markReady",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@markReady",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::orders",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@orders",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::products",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@products",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::stats",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::accept",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@complete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::requested",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@requested",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileUserController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileUserController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUserController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastAs",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastAs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastOn",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastOn",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastWith",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastWith",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::count",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@count",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@markAllAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@markAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@send",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OcrAnalyticsController.php::App\\Http\\Controllers\\Api\\OcrAnalyticsController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\OcrAnalyticsController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OcrAnalyticsController.php::App\\Http\\Controllers\\Api\\OcrAnalyticsController::kpis",
        "fqmn": "App\\Http\\Controllers\\Api\\OcrAnalyticsController@kpis",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/PlanVersionController.php::App\\Http\\Controllers\\Api\\PlanVersionController::features",
        "fqmn": "App\\Http\\Controllers\\Api\\PlanVersionController@features",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/PlanVersionController.php::App\\Http\\Controllers\\Api\\PlanVersionController::publicVersions",
        "fqmn": "App\\Http\\Controllers\\Api\\PlanVersionController@publicVersions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Properties/UnitController.php::App\\Http\\Controllers\\Api\\Properties\\UnitController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Properties\\UnitController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::companyCheck",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::debugMigrate",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::fixCascadeBug",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::kpiOkr",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@kpiOkr",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::recomputeCascades",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::addAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@addAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::addComment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@addComment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::deleteAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@deleteAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::deleteComment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@deleteComment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::feed",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@feed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::listAttachments",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listAttachments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::listComments",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listComments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::react",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@react",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::unreact",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@unreact",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionExportController.php::App\\Http\\Controllers\\Api\\RecognitionExportController::csv",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionExportController@csv",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionKpiExportController.php::App\\Http\\Controllers\\Api\\RecognitionKpiExportController::export",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionKpiExportController@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::redeem",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@redeem",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SettingsController.php::App\\Http\\Controllers\\Api\\SettingsController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SettingsController.php::App\\Http\\Controllers\\Api\\SettingsController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::kpi",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::setup",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::test",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/StorageProxyController.php::App\\Http\\Controllers\\Api\\StorageProxyController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\StorageProxyController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/StoreController.php::App\\Http\\Controllers\\Api\\StoreController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\StoreController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::previewDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::previewUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyDowngrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::downgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@downgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::listPublicPlanVersions",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@listPublicPlanVersions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::upgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@upgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionStartController.php::App\\Http\\Controllers\\Api\\SubscriptionStartController::start",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionStartController@start",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::addAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@addAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::addWatcher",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@addWatcher",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@approve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@complete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::deleteAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@deleteAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::listAttachments",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listAttachments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::listWatchers",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listWatchers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::removeWatcher",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@removeWatcher",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@status",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskMetricsController.php::App\\Http\\Controllers\\Api\\TaskMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskMetricsController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskPrefillController.php::App\\Http\\Controllers\\Api\\TaskPrefillController::getPrefill",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskPrefillController@getPrefill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@approve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::assign",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@assign",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::updateStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@updateStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TransactionController.php::App\\Http\\Controllers\\Api\\TransactionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TransactionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TransactionsHelpController.php::App\\Http\\Controllers\\Api\\TransactionsHelpController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\TransactionsHelpController@send",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UploadController.php::App\\Http\\Controllers\\Api\\UploadController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\UploadController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserDetachController.php::App\\Http\\Controllers\\Api\\UserDetachController::detach",
        "fqmn": "App\\Http\\Controllers\\Api\\UserDetachController@detach",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/ConfirmablePasswordController.php::App\\Http\\Controllers\\Auth\\ConfirmablePasswordController::show",
        "fqmn": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/ConfirmablePasswordController.php::App\\Http\\Controllers\\Auth\\ConfirmablePasswordController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/EmailVerificationNotificationController.php::App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/EmailVerificationPromptController.php::App\\Http\\Controllers\\Auth\\EmailVerificationPromptController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/NewPasswordController.php::App\\Http\\Controllers\\Auth\\NewPasswordController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\NewPasswordController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/NewPasswordController.php::App\\Http\\Controllers\\Auth\\NewPasswordController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\NewPasswordController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/PasswordController.php::App\\Http\\Controllers\\Auth\\PasswordController::update",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/PasswordResetLinkController.php::App\\Http\\Controllers\\Auth\\PasswordResetLinkController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/PasswordResetLinkController.php::App\\Http\\Controllers\\Auth\\PasswordResetLinkController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/PublicVerifyEmailController.php::App\\Http\\Controllers\\Auth\\PublicVerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/RegisteredUserController.php::App\\Http\\Controllers\\Auth\\RegisteredUserController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/RegisteredUserController.php::App\\Http\\Controllers\\Auth\\RegisteredUserController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/VerifyEmailController.php::App\\Http\\Controllers\\Auth\\VerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerifyEmailController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/BackorderCancelController.php::App\\Http\\Controllers\\BackorderCancelController::cancel",
        "fqmn": "App\\Http\\Controllers\\BackorderCancelController@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Billing/UpdateCardMagicLinkController.php::App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::add",
        "fqmn": "App\\Http\\Controllers\\CartController@add",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::index",
        "fqmn": "App\\Http\\Controllers\\CartController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::remove",
        "fqmn": "App\\Http\\Controllers\\CartController@remove",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::update",
        "fqmn": "App\\Http\\Controllers\\CartController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/CheckoutController.php::App\\Http\\Controllers\\CheckoutController::cancel",
        "fqmn": "App\\Http\\Controllers\\CheckoutController@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/CheckoutController.php::App\\Http\\Controllers\\CheckoutController::checkout",
        "fqmn": "App\\Http\\Controllers\\CheckoutController@checkout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/CheckoutController.php::App\\Http\\Controllers\\CheckoutController::processPointsCheckout",
        "fqmn": "App\\Http\\Controllers\\CheckoutController@processPointsCheckout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/CheckoutController.php::App\\Http\\Controllers\\CheckoutController::success",
        "fqmn": "App\\Http\\Controllers\\CheckoutController@success",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ContactController.php::App\\Http\\Controllers\\ContactController::store",
        "fqmn": "App\\Http\\Controllers\\ContactController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Dev/SubscriptionDryRunController.php::App\\Http\\Controllers\\Dev\\SubscriptionDryRunController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Dev\\SubscriptionDryRunController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::feedback",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@feedback",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::track",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@track",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::unsubscribe",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@unsubscribe",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employee/RewardsReceiptController.php::App\\Http\\Controllers\\Employee\\RewardsReceiptController::download",
        "fqmn": "App\\Http\\Controllers\\Employee\\RewardsReceiptController@download",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::activate",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@activate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::pause",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@pause",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRaisePolicy",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRaiseTemplates",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRewardsPolicy",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardsPolicy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRewardTemplates",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardTemplates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::cancelSeatSchedule",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@cancelSeatSchedule",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::cancelSubscriptionAtPeriodEnd",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::purchaseSeats",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@purchaseSeats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::purchaseSeatsSuccess",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@purchaseSeatsSuccess",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::resumeSubscription",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@resumeSubscription",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::scheduleSeatReduction",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@scheduleSeatReduction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomExportController.php::App\\Http\\Controllers\\Employer\\ControlRoomExportController::downloadJson",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadJson",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomExportController.php::App\\Http\\Controllers\\Employer\\ControlRoomExportController::downloadPdf",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadPdf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomInvestigationController.php::App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController::show",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/HireReadinessPdfController.php::App\\Http\\Controllers\\Employer\\HireReadinessPdfController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\HireReadinessPdfController@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/KpiExportController.php::App\\Http\\Controllers\\Employer\\KpiExportController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\KpiExportController@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/KpiExportController.php::App\\Http\\Controllers\\Employer\\KpiExportController::recompute",
        "fqmn": "App\\Http\\Controllers\\Employer\\KpiExportController@recompute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/OAuthEmailController.php::App\\Http\\Controllers\\Employer\\OAuthEmailController::callback",
        "fqmn": "App\\Http\\Controllers\\Employer\\OAuthEmailController@callback",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/OAuthEmailController.php::App\\Http\\Controllers\\Employer\\OAuthEmailController::connect",
        "fqmn": "App\\Http\\Controllers\\Employer\\OAuthEmailController@connect",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::oneClickUpgrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@oneClickUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::purchasePlan",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@purchasePlan",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::success",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@success",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/RewardsStatementController.php::App\\Http\\Controllers\\Employer\\RewardsStatementController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\RewardsStatementController@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/SubscriptionController.php::App\\Http\\Controllers\\Employer\\SubscriptionController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/SubscriptionController.php::App\\Http\\Controllers\\Employer\\SubscriptionController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::destroy",
        "fqmn": "App\\Http\\Controllers\\GroupController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::store",
        "fqmn": "App\\Http\\Controllers\\GroupController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::update",
        "fqmn": "App\\Http\\Controllers\\GroupController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::connect",
        "fqmn": "App\\Http\\Controllers\\HelpController@connect",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::dmTest",
        "fqmn": "App\\Http\\Controllers\\HelpController@dmTest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::health",
        "fqmn": "App\\Http\\Controllers\\HelpController@health",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/HomeController.php::App\\Http\\Controllers\\HomeController::home",
        "fqmn": "App\\Http\\Controllers\\HomeController@home",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportController.php::App\\Http\\Controllers\\ImportController::autocorrect",
        "fqmn": "App\\Http\\Controllers\\ImportController@autocorrect",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::apply",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@apply",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::download",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@download",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::dryRun",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@dryRun",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::index",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::preview",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::status",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@status",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/Integrations/OtoWebhookController.php::App\\Http\\Controllers\\Integrations\\OtoWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Integrations\\OtoWebhookController@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/LandingController.php::App\\Http\\Controllers\\LandingController::__invoke",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/LandingController.php::App\\Http\\Controllers\\LandingController::index",
        "fqmn": "App\\Http\\Controllers\\LandingController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::byGroup",
        "fqmn": "App\\Http\\Controllers\\MessageController@byGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::byUser",
        "fqmn": "App\\Http\\Controllers\\MessageController@byUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::destroy",
        "fqmn": "App\\Http\\Controllers\\MessageController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::loadOlder",
        "fqmn": "App\\Http\\Controllers\\MessageController@loadOlder",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::markRead",
        "fqmn": "App\\Http\\Controllers\\MessageController@markRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::react",
        "fqmn": "App\\Http\\Controllers\\MessageController@react",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::showAttachment",
        "fqmn": "App\\Http\\Controllers\\MessageController@showAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::store",
        "fqmn": "App\\Http\\Controllers\\MessageController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/NotificationController.php::App\\Http\\Controllers\\NotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAllAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/NotificationController.php::App\\Http\\Controllers\\NotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/OrdersController.php::App\\Http\\Controllers\\OrdersController::index",
        "fqmn": "App\\Http\\Controllers\\OrdersController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/OrdersController.php::App\\Http\\Controllers\\OrdersController::show",
        "fqmn": "App\\Http\\Controllers\\OrdersController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::destroy",
        "fqmn": "App\\Http\\Controllers\\ProfileController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::edit",
        "fqmn": "App\\Http\\Controllers\\ProfileController@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::update",
        "fqmn": "App\\Http\\Controllers\\ProfileController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::__construct",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::addComment",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addComment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::addReaction",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addReaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::colleagues",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@colleagues",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::create",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::removeReaction",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@removeReaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::show",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::stats",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::form",
        "fqmn": "App\\Http\\Controllers\\RfqController@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::pdf",
        "fqmn": "App\\Http\\Controllers\\RfqController@pdf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::submit",
        "fqmn": "App\\Http\\Controllers\\RfqController@submit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::thankyou",
        "fqmn": "App\\Http\\Controllers\\RfqController@thankyou",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SecureOrderPdfController.php::App\\Http\\Controllers\\SecureOrderPdfController::planInvoicePdf",
        "fqmn": "App\\Http\\Controllers\\SecureOrderPdfController@planInvoicePdf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/StorefrontController.php::App\\Http\\Controllers\\StorefrontController::index",
        "fqmn": "App\\Http\\Controllers\\StorefrontController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/StorefrontController.php::App\\Http\\Controllers\\StorefrontController::show",
        "fqmn": "App\\Http\\Controllers\\StorefrontController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::billing",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@billing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::cancel",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::checkout",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@checkout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::confirm",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@confirm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::plan",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@plan",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::portal",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@portal",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::subscribe",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@subscribe",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SuccessionDossierController.php::App\\Http\\Controllers\\SuccessionDossierController::seal",
        "fqmn": "App\\Http\\Controllers\\SuccessionDossierController@seal",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/SuccessionDossierController.php::App\\Http\\Controllers\\SuccessionDossierController::updateMilestone",
        "fqmn": "App\\Http\\Controllers\\SuccessionDossierController@updateMilestone",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/TapWebhookController.php::App\\Http\\Controllers\\TapWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\TapWebhookController@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/TapWebhookController.php::App\\Http\\Controllers\\TapWebhookController::processTapEventPayload",
        "fqmn": "App\\Http\\Controllers\\TapWebhookController@processTapEventPayload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::blockUnblock",
        "fqmn": "App\\Http\\Controllers\\UserController@blockUnblock",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::changeRole",
        "fqmn": "App\\Http\\Controllers\\UserController@changeRole",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::lookupUlid",
        "fqmn": "App\\Http\\Controllers\\UserController@lookupUlid",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::store",
        "fqmn": "App\\Http\\Controllers\\UserController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::authenticate",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@authenticate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::ensureIsNotRateLimited",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@ensureIsNotRateLimited",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::throttleKey",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@throttleKey",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::validatedWithDefaults",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedFrom",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedPeriod",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedScope",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedScope",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedTo",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedTo",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validationData",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validationData",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/GroupResource.php::App\\Http\\Resources\\GroupResource::toArray",
        "fqmn": "App\\Http\\Resources\\GroupResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/MessageAttachmentResource.php::App\\Http\\Resources\\MessageAttachmentResource::toArray",
        "fqmn": "App\\Http\\Resources\\MessageAttachmentResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/MessageResource.php::App\\Http\\Resources\\MessageResource::toArray",
        "fqmn": "App\\Http\\Resources\\MessageResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/TaskResource.php::App\\Http\\Resources\\TaskResource::toArray",
        "fqmn": "App\\Http\\Resources\\TaskResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Http/Resources/UserResource.php::App\\Http\\Resources\\UserResource::toArray",
        "fqmn": "App\\Http\\Resources\\UserResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/AccrueCogsForOrderDelivery.php::App\\Jobs\\AccrueCogsForOrderDelivery::__construct",
        "fqmn": "App\\Jobs\\AccrueCogsForOrderDelivery@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/AutoCorrectUsersImport.php::App\\Jobs\\AutoCorrectUsersImport::__construct",
        "fqmn": "App\\Jobs\\AutoCorrectUsersImport@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/BackfillOrderAdvancePdfs.php::App\\Jobs\\BackfillOrderAdvancePdfs::__construct",
        "fqmn": "App\\Jobs\\BackfillOrderAdvancePdfs@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/Billing/RecordGatewayFeeJob.php::App\\Jobs\\Billing\\RecordGatewayFeeJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\RecordGatewayFeeJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/BroadcastRecognitionCreated.php::App\\Jobs\\BroadcastRecognitionCreated::__construct",
        "fqmn": "App\\Jobs\\BroadcastRecognitionCreated@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ComputeControlRoomAiSummary.php::App\\Jobs\\ComputeControlRoomAiSummary::__construct",
        "fqmn": "App\\Jobs\\ComputeControlRoomAiSummary@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ComputeWidgetSnapshots.php::App\\Jobs\\ComputeWidgetSnapshots::__construct",
        "fqmn": "App\\Jobs\\ComputeWidgetSnapshots@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ComputeWidgetSnapshots.php::App\\Jobs\\ComputeWidgetSnapshots::resolveWidgetKeys",
        "fqmn": "App\\Jobs\\ComputeWidgetSnapshots@resolveWidgetKeys",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ConsolidateUnbilledCharges.php::App\\Jobs\\ConsolidateUnbilledCharges::__construct",
        "fqmn": "App\\Jobs\\ConsolidateUnbilledCharges@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoBillForOrderSupplier.php::App\\Jobs\\CreateZohoBillForOrderSupplier::__construct",
        "fqmn": "App\\Jobs\\CreateZohoBillForOrderSupplier@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoInvoiceForOrder.php::App\\Jobs\\CreateZohoInvoiceForOrder::__construct",
        "fqmn": "App\\Jobs\\CreateZohoInvoiceForOrder@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoPurchaseOrdersForOrder.php::App\\Jobs\\CreateZohoPurchaseOrdersForOrder::__construct",
        "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/DeleteGroupJob.php::App\\Jobs\\DeleteGroupJob::__construct",
        "fqmn": "App\\Jobs\\DeleteGroupJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/DetectZohoSideEdits.php::App\\Jobs\\DetectZohoSideEdits::applyReconcile",
        "fqmn": "App\\Jobs\\DetectZohoSideEdits@applyReconcile",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/DetectZohoSideEdits.php::App\\Jobs\\DetectZohoSideEdits::applySupersede",
        "fqmn": "App\\Jobs\\DetectZohoSideEdits@applySupersede",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/DispatchOcrJob.php::App\\Jobs\\DispatchOcrJob::__construct",
        "fqmn": "App\\Jobs\\DispatchOcrJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/EnsureOrderZohoAdvance.php::App\\Jobs\\EnsureOrderZohoAdvance::__construct",
        "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/GenerateDigestBatch.php::App\\Jobs\\GenerateDigestBatch::__construct",
        "fqmn": "App\\Jobs\\GenerateDigestBatch@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/GenerateHelpBotReply.php::App\\Jobs\\GenerateHelpBotReply::__construct",
        "fqmn": "App\\Jobs\\GenerateHelpBotReply@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::__construct",
        "fqmn": "App\\Jobs\\GenerateReferralInsights@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::cacheKey",
        "fqmn": "App\\Jobs\\GenerateReferralInsights@cacheKey",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/InvariantMonitor.php::App\\Jobs\\InvariantMonitor::applyApproved",
        "fqmn": "App\\Jobs\\InvariantMonitor@applyApproved",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/Middleware/EnsureFeature.php::App\\Jobs\\Middleware\\EnsureFeature::__construct",
        "fqmn": "App\\Jobs\\Middleware\\EnsureFeature@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/MonitorStuckOrders.php::App\\Jobs\\MonitorStuckOrders::__construct",
        "fqmn": "App\\Jobs\\MonitorStuckOrders@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/Occasions/ManagerHeadsUpJob.php::App\\Jobs\\Occasions\\ManagerHeadsUpJob::__construct",
        "fqmn": "App\\Jobs\\Occasions\\ManagerHeadsUpJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/Occasions/OccasionEmailSendJob.php::App\\Jobs\\Occasions\\OccasionEmailSendJob::__construct",
        "fqmn": "App\\Jobs\\Occasions\\OccasionEmailSendJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/Occasions/OccasionEventDispatchJob.php::App\\Jobs\\Occasions\\OccasionEventDispatchJob::__construct",
        "fqmn": "App\\Jobs\\Occasions\\OccasionEventDispatchJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/PostShippingExpenseToZoho.php::App\\Jobs\\PostShippingExpenseToZoho::__construct",
        "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/PrefetchPlanInvoice.php::App\\Jobs\\PrefetchPlanInvoice::__construct",
        "fqmn": "App\\Jobs\\PrefetchPlanInvoice@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/PrefetchWalletReceipt.php::App\\Jobs\\PrefetchWalletReceipt::__construct",
        "fqmn": "App\\Jobs\\PrefetchWalletReceipt@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/Privacy/GenerateDataExportJob.php::App\\Jobs\\Privacy\\GenerateDataExportJob::__construct",
        "fqmn": "App\\Jobs\\Privacy\\GenerateDataExportJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/ProcessDunningRetryJob.php::App\\Jobs\\ProcessDunningRetryJob::__construct",
        "fqmn": "App\\Jobs\\ProcessDunningRetryJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ProcessSmartInvoices.php::App\\Jobs\\ProcessSmartInvoices::__construct",
        "fqmn": "App\\Jobs\\ProcessSmartInvoices@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ProcessSupplierInvoiceOcr.php::App\\Jobs\\ProcessSupplierInvoiceOcr::__construct",
        "fqmn": "App\\Jobs\\ProcessSupplierInvoiceOcr@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ProcessTapPlanPurchase.php::App\\Jobs\\ProcessTapPlanPurchase::__construct",
        "fqmn": "App\\Jobs\\ProcessTapPlanPurchase@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ProcessTapPlanUpgrade.php::App\\Jobs\\ProcessTapPlanUpgrade::__construct",
        "fqmn": "App\\Jobs\\ProcessTapPlanUpgrade@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ProcessZohoOutboxEntry.php::App\\Jobs\\ProcessZohoOutboxEntry::__construct",
        "fqmn": "App\\Jobs\\ProcessZohoOutboxEntry@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ReconcilePaymentForOrder.php::App\\Jobs\\ReconcilePaymentForOrder::__construct",
        "fqmn": "App\\Jobs\\ReconcilePaymentForOrder@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/RecordOtoTopUpInZoho.php::App\\Jobs\\RecordOtoTopUpInZoho::__construct",
        "fqmn": "App\\Jobs\\RecordOtoTopUpInZoho@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/RecordSalesCommissionInZoho.php::App\\Jobs\\RecordSalesCommissionInZoho::__construct",
        "fqmn": "App\\Jobs\\RecordSalesCommissionInZoho@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/RetryTapWebhookJob.php::App\\Jobs\\RetryTapWebhookJob::__construct",
        "fqmn": "App\\Jobs\\RetryTapWebhookJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/ScanRemindersJob.php::App\\Jobs\\ScanRemindersJob::__construct",
        "fqmn": "App\\Jobs\\ScanRemindersJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/SeedGuidedBadges.php::App\\Jobs\\SeedGuidedBadges::__construct",
        "fqmn": "App\\Jobs\\SeedGuidedBadges@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/SeedGuidedCompanyValues.php::App\\Jobs\\SeedGuidedCompanyValues::__construct",
        "fqmn": "App\\Jobs\\SeedGuidedCompanyValues@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/SendApprovedDigests.php::App\\Jobs\\SendApprovedDigests::__construct",
        "fqmn": "App\\Jobs\\SendApprovedDigests@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/SendOrderCompletionNotification.php::App\\Jobs\\SendOrderCompletionNotification::__construct",
        "fqmn": "App\\Jobs\\SendOrderCompletionNotification@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/SendReminderJob.php::App\\Jobs\\SendReminderJob::__construct",
        "fqmn": "App\\Jobs\\SendReminderJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/SendZohoAdvance.php::App\\Jobs\\SendZohoAdvance::__construct",
        "fqmn": "App\\Jobs\\SendZohoAdvance@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/SettleSupplierInvoicePayment.php::App\\Jobs\\SettleSupplierInvoicePayment::__construct",
        "fqmn": "App\\Jobs\\SettleSupplierInvoicePayment@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::__construct",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::initProgress",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@initProgress",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::progressCacheKey",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@progressCacheKey",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/Succession/GenerateSuccessionCurriculum.php::App\\Jobs\\Succession\\GenerateSuccessionCurriculum::__construct",
        "fqmn": "App\\Jobs\\Succession\\GenerateSuccessionCurriculum@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/SyncProductToZoho.php::App\\Jobs\\SyncProductToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncProductToZoho@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/UploadZohoBillAttachment.php::App\\Jobs\\UploadZohoBillAttachment::__construct",
        "fqmn": "App\\Jobs\\UploadZohoBillAttachment@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/WarmCompanyKpiOkr.php::App\\Jobs\\WarmCompanyKpiOkr::__construct",
        "fqmn": "App\\Jobs\\WarmCompanyKpiOkr@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Jobs/WarmKpiCacheForDay.php::App\\Jobs\\WarmKpiCacheForDay::__construct",
        "fqmn": "App\\Jobs\\WarmKpiCacheForDay@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Jobs/WarmKpiOkrCache.php::App\\Jobs\\WarmKpiOkrCache::__construct",
        "fqmn": "App\\Jobs\\WarmKpiOkrCache@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/Billing/EnforceHighWaterMark.php::App\\Listeners\\Billing\\EnforceHighWaterMark::__construct",
        "fqmn": "App\\Listeners\\Billing\\EnforceHighWaterMark@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::__construct",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastAs",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastAs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastOn",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastOn",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastWith",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastWith",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleApproved",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleApproved",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleCheckpointCompleted",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleCheckpointCompleted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleRejected",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleRejected",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/EnforceHighWaterMark.php::App\\Listeners\\EnforceHighWaterMark::recordSeatAddition",
        "fqmn": "App\\Listeners\\EnforceHighWaterMark@recordSeatAddition",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Listeners/Rewards/FreezePointsOnCompanyCancellation.php::App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation::__construct",
        "fqmn": "App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Listeners/SendRecognitionNotifications.php::App\\Listeners\\SendRecognitionNotifications::resetCache",
        "fqmn": "App\\Listeners\\SendRecognitionNotifications@resetCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Listeners/SuspendAutoChargeOnDispute.php::App\\Listeners\\SuspendAutoChargeOnDispute::__construct",
        "fqmn": "App\\Listeners\\SuspendAutoChargeOnDispute@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Models/Company.php::App\\Models\\Company::canAddSeat",
        "fqmn": "App\\Models\\Company@canAddSeat",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Models/Conversation.php::App\\Models\\Conversation::updateConversationWithMessage",
        "fqmn": "App\\Models\\Conversation@updateConversationWithMessage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/DocumentFieldIndex.php::App\\Models\\DocumentFieldIndex::removeIndex",
        "fqmn": "App\\Models\\DocumentFieldIndex@removeIndex",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/DocumentFieldIndex.php::App\\Models\\DocumentFieldIndex::updateIndex",
        "fqmn": "App\\Models\\DocumentFieldIndex@updateIndex",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Group.php::App\\Models\\Group::updateGroupWithMessage",
        "fqmn": "App\\Models\\Group@updateGroupWithMessage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::approvals",
        "fqmn": "App\\Models\\HireRequest@approvals",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::company",
        "fqmn": "App\\Models\\HireRequest@company",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::isOpen",
        "fqmn": "App\\Models\\HireRequest@isOpen",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::isReplacement",
        "fqmn": "App\\Models\\HireRequest@isReplacement",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::jdLines",
        "fqmn": "App\\Models\\HireRequest@jdLines",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::jobPosting",
        "fqmn": "App\\Models\\HireRequest@jobPosting",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::outcomeCheckpoints",
        "fqmn": "App\\Models\\HireRequest@outcomeCheckpoints",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::rejectedBy",
        "fqmn": "App\\Models\\HireRequest@rejectedBy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::replacementUser",
        "fqmn": "App\\Models\\HireRequest@replacementUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::report",
        "fqmn": "App\\Models\\HireRequest@report",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::requester",
        "fqmn": "App\\Models\\HireRequest@requester",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::targetDepartment",
        "fqmn": "App\\Models\\HireRequest@targetDepartment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::targetTeam",
        "fqmn": "App\\Models\\HireRequest@targetTeam",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/KieTemplate.php::App\\Models\\KieTemplate::resolveTemplate",
        "fqmn": "App\\Models\\KieTemplate@resolveTemplate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/NotificationSetting.php::App\\Models\\NotificationSetting::forCompany",
        "fqmn": "App\\Models\\NotificationSetting@forCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Occasions/HolidayCalendar.php::App\\Models\\Occasions\\HolidayCalendar::getCalendarForCompany",
        "fqmn": "App\\Models\\Occasions\\HolidayCalendar@getCalendarForCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Occasions/OccasionEmailConfig.php::App\\Models\\Occasions\\OccasionEmailConfig::getOrCreateForCompany",
        "fqmn": "App\\Models\\Occasions\\OccasionEmailConfig@getOrCreateForCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Occasions/OccasionEmailEvent.php::App\\Models\\Occasions\\OccasionEmailEvent::createEvent",
        "fqmn": "App\\Models\\Occasions\\OccasionEmailEvent@createEvent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Order.php::App\\Models\\Order::derivePrimaryMethod",
        "fqmn": "App\\Models\\Order@derivePrimaryMethod",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Order.php::App\\Models\\Order::generateNextNumber",
        "fqmn": "App\\Models\\Order@generateNextNumber",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Privacy/DataSubjectRequest.php::App\\Models\\Privacy\\DataSubjectRequest::company",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@company",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Models/Privacy/DataSubjectRequest.php::App\\Models\\Privacy\\DataSubjectRequest::processedByUser",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@processedByUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Models/Privacy/DataSubjectRequest.php::App\\Models\\Privacy\\DataSubjectRequest::user",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@user",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Models/Product.php::App\\Models\\Product::category",
        "fqmn": "App\\Models\\Product@category",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Product.php::App\\Models\\Product::computePointsCost",
        "fqmn": "App\\Models\\Product@computePointsCost",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Promotion/SalaryBand.php::App\\Models\\Promotion\\SalaryBand::findCurrentBand",
        "fqmn": "App\\Models\\Promotion\\SalaryBand@findCurrentBand",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Rfq.php::App\\Models\\Rfq::generateNumber",
        "fqmn": "App\\Models\\Rfq@generateNumber",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/Task.php::App\\Models\\Task::target",
        "fqmn": "App\\Models\\Task@target",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/User.php::App\\Models\\User::companies",
        "fqmn": "App\\Models\\User@companies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Models/ZohoModifiedSinceCursorState.php::App\\Models\\ZohoModifiedSinceCursorState::advanceTo",
        "fqmn": "App\\Models\\ZohoModifiedSinceCursorState@advanceTo",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Models/ZohoModifiedSinceCursorState.php::App\\Models\\ZohoModifiedSinceCursorState::current",
        "fqmn": "App\\Models\\ZohoModifiedSinceCursorState@current",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/AccountingDriftPolicy.php::App\\Policies\\AccountingDriftPolicy::deleteAny",
        "fqmn": "App\\Policies\\AccountingDriftPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::bulkAction",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::canViewAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::deleteAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/CompanyPolicy.php::App\\Policies\\CompanyPolicy::resumeDunning",
        "fqmn": "App\\Policies\\CompanyPolicy@resumeDunning",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::reactivate",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@reactivate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::revoke",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@revoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::canViewAny",
        "fqmn": "App\\Policies\\DeliveryPolicy@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/DisputePolicy.php::App\\Policies\\DisputePolicy::viewWidget",
        "fqmn": "App\\Policies\\DisputePolicy@viewWidget",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/DocumentFieldPolicy.php::App\\Policies\\DocumentFieldPolicy::accept",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@accept",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::comment",
        "fqmn": "App\\Policies\\DocumentPolicy@comment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::manageShares",
        "fqmn": "App\\Policies\\DocumentPolicy@manageShares",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::review",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@review",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::deleteAny",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::deleteAny",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::deleteAny",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::deleteAny",
        "fqmn": "App\\Policies\\PlanVersionPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/ProductPolicy.php::App\\Policies\\ProductPolicy::deleteAny",
        "fqmn": "App\\Policies\\ProductPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::deleteAny",
        "fqmn": "App\\Policies\\RecognitionPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::deleteAny",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::deleteAny",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::deleteAny",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::approve",
        "fqmn": "App\\Policies\\TaskPolicy@approve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::cancel",
        "fqmn": "App\\Policies\\TaskPolicy@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::manage",
        "fqmn": "App\\Policies\\TaskPolicy@manage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::updateStatusAsReceiver",
        "fqmn": "App\\Policies\\TaskPolicy@updateStatusAsReceiver",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::detach",
        "fqmn": "App\\Policies\\UserPolicy@detach",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::deleteAny",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Policies/ZohoSideEditPolicy.php::App\\Policies\\ZohoSideEditPolicy::deleteAny",
        "fqmn": "App\\Policies\\ZohoSideEditPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Scopes/CompanyScope.php::App\\Scopes\\CompanyScope::withTenant",
        "fqmn": "App\\Scopes\\CompanyScope@withTenant",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemAction.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemAction::execute",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemResult.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemResult::__construct",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemResult.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemResult::toArray",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::__construct",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::isLowSpecificity",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@isLowSpecificity",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::toArray",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::capsRatio",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@capsRatio",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::charCount",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@charCount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::countExclamationRuns",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@countExclamationRuns",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::countKashidaRuns",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@countKashidaRuns",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::countRepeatedCharRuns",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@countRepeatedCharRuns",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::isEmojiOnly",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@isEmojiOnly",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::matchesAnyGenericPhrase",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyGenericPhrase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::matchesAnyIntensifierPhrase",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyIntensifierPhrase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::score",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@score",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::tashkeelDensity",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@tashkeelDensity",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::wordCount",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@wordCount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Billing/LedgerBackSyncService.php::App\\Services\\Billing\\LedgerBackSyncService::apply",
        "fqmn": "App\\Services\\Billing\\LedgerBackSyncService@apply",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Billing/RevenueRecognitionRefundAdjuster.php::App\\Services\\Billing\\RevenueRecognitionRefundAdjuster::adjustForRefund",
        "fqmn": "App\\Services\\Billing\\RevenueRecognitionRefundAdjuster@adjustForRefund",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Billing/SeatHighWaterService.php::App\\Services\\Billing\\SeatHighWaterService::chargeIfOverHighWater",
        "fqmn": "App\\Services\\Billing\\SeatHighWaterService@chargeIfOverHighWater",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Billing/SeatHighWaterService.php::App\\Services\\Billing\\SeatHighWaterService::compute",
        "fqmn": "App\\Services\\Billing\\SeatHighWaterService@compute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Billing/SeatHighWaterService.php::App\\Services\\Billing\\SeatHighWaterService::seatCostPerCycleHalalas",
        "fqmn": "App\\Services\\Billing\\SeatHighWaterService@seatCostPerCycleHalalas",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadMetricsService.php::App\\Services\\Chat\\ThreadMetricsService::snapshot",
        "fqmn": "App\\Services\\Chat\\ThreadMetricsService@snapshot",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::dispatchNewMessageNotifications",
        "fqmn": "App\\Services\\Chat\\ThreadService@dispatchNewMessageNotifications",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::getReplies",
        "fqmn": "App\\Services\\Chat\\ThreadService@getReplies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::isMutedFor",
        "fqmn": "App\\Services\\Chat\\ThreadService@isMutedFor",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::markRead",
        "fqmn": "App\\Services\\Chat\\ThreadService@markRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::mutedUserIds",
        "fqmn": "App\\Services\\Chat\\ThreadService@mutedUserIds",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::setMuted",
        "fqmn": "App\\Services\\Chat\\ThreadService@setMuted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::unreadCount",
        "fqmn": "App\\Services\\Chat\\ThreadService@unreadCount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::unreadCountsBulk",
        "fqmn": "App\\Services\\Chat\\ThreadService@unreadCountsBulk",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchDepartments",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchDepartments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchTeams",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchTeams",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchUsers",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchUsers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::getCompanyHealth",
        "fqmn": "App\\Services\\CompanyInsightsService@getCompanyHealth",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::getPerformanceTrends",
        "fqmn": "App\\Services\\CompanyInsightsService@getPerformanceTrends",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::resolve",
        "fqmn": "App\\Services\\CompanyInsightsService@resolve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/CoverageStatsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::all",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@all",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::builder",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@builder",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::clearCache",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::compose",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@compose",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::has",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@has",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::renderer",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@renderer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/ManagerBudgetTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/NarrativePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder::hasNarrative",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/ParticipationSegmentsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RankedListTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RankedListTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@hasShape",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RateStatsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder@hasShape",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/TrendPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/TrendPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@hasShape",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ParticipationSegmentResolver.php::App\\Services\\ControlRoom\\ParticipationSegmentResolver::resolveSegmentActivity",
        "fqmn": "App\\Services\\ControlRoom\\ParticipationSegmentResolver@resolveSegmentActivity",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/DigestSourceHealthReporter.php::App\\Services\\Digest\\DigestSourceHealthReporter::aggregate",
        "fqmn": "App\\Services\\Digest\\DigestSourceHealthReporter@aggregate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/GroundingPromptAppender.php::App\\Services\\Digest\\GroundingPromptAppender::build",
        "fqmn": "App\\Services\\Digest\\GroundingPromptAppender@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/CachedDigestSourceFacade.php::App\\Services\\Digest\\Sources\\CachedDigestSourceFacade::warm",
        "fqmn": "App\\Services\\Digest\\Sources\\CachedDigestSourceFacade@warm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/CityResolver.php::App\\Services\\Digest\\Sources\\CityResolver::resolve",
        "fqmn": "App\\Services\\Digest\\Sources\\CityResolver@resolve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/CityResolver.php::App\\Services\\Digest\\Sources\\CityResolver::resolveOrCapital",
        "fqmn": "App\\Services\\Digest\\Sources\\CityResolver@resolveOrCapital",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/DigestSourceOrchestrator.php::App\\Services\\Digest\\Sources\\DigestSourceOrchestrator::__construct",
        "fqmn": "App\\Services\\Digest\\Sources\\DigestSourceOrchestrator@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/DigestSourceOrchestrator.php::App\\Services\\Digest\\Sources\\DigestSourceOrchestrator::bundleFor",
        "fqmn": "App\\Services\\Digest\\Sources\\DigestSourceOrchestrator@bundleFor",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::__construct",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::empty",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@empty",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::isEmpty",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@isEmpty",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::toArray",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Email/CompanyMailer.php::App\\Services\\Email\\CompanyMailer::__construct",
        "fqmn": "App\\Services\\Email\\CompanyMailer@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Email/CompanyMailer.php::App\\Services\\Email\\CompanyMailer::sendHtml",
        "fqmn": "App\\Services\\Email\\CompanyMailer@sendHtml",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Guardrails/CompanyAdequacyService.php::App\\Services\\Guardrails\\CompanyAdequacyService::assess",
        "fqmn": "App\\Services\\Guardrails\\CompanyAdequacyService@assess",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Guardrails/CompanyAdequacyService.php::App\\Services\\Guardrails\\CompanyAdequacyService::isAdequate",
        "fqmn": "App\\Services\\Guardrails\\CompanyAdequacyService@isAdequate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricConflictDetector.php::App\\Services\\Metrics\\MetricConflictDetector::assertNoUnresolvedConflicts",
        "fqmn": "App\\Services\\Metrics\\MetricConflictDetector@assertNoUnresolvedConflicts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricConflictDetector.php::App\\Services\\Metrics\\MetricConflictDetector::detectConflicts",
        "fqmn": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/SnapshotShapeAdapter.php::App\\Services\\Metrics\\SnapshotShapeAdapter::toLegacyWidgetData",
        "fqmn": "App\\Services\\Metrics\\SnapshotShapeAdapter@toLegacyWidgetData",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/SnapshotShapeAdapter.php::App\\Services\\Metrics\\SnapshotShapeAdapter::toMetricSnapshotPayload",
        "fqmn": "App\\Services\\Metrics\\SnapshotShapeAdapter@toMetricSnapshotPayload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::all",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@all",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::clearCache",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@clearCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::definition",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@definition",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::disambiguator",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@disambiguator",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::displayName",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@displayName",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::formula",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@formula",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::get",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@get",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::glossary",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@glossary",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::applyZohoPayment",
        "fqmn": "App\\Services\\MoneyMovementService@applyZohoPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::applyZohoPaymentByInvoiceId",
        "fqmn": "App\\Services\\MoneyMovementService@applyZohoPaymentByInvoiceId",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::applyZohoVendorPayment",
        "fqmn": "App\\Services\\MoneyMovementService@applyZohoVendorPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::recordBankTransferIntent",
        "fqmn": "App\\Services\\MoneyMovementService@recordBankTransferIntent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::recordSubscriptionRevocation",
        "fqmn": "App\\Services\\MoneyMovementService@recordSubscriptionRevocation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::transferFromWallet",
        "fqmn": "App\\Services\\MoneyMovementService@transferFromWallet",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::transferToWallet",
        "fqmn": "App\\Services\\MoneyMovementService@transferToWallet",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::allocateProofToBatch",
        "fqmn": "App\\Services\\PaymentAllocator@allocateProofToBatch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::recordProof",
        "fqmn": "App\\Services\\PaymentAllocator@recordProof",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::unallocate",
        "fqmn": "App\\Services\\PaymentAllocator@unallocate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentApplicator.php::App\\Services\\PaymentApplicator::applyFifo",
        "fqmn": "App\\Services\\PaymentApplicator@applyFifo",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentApplicator.php::App\\Services\\PaymentApplicator::applyToSpecificInvoice",
        "fqmn": "App\\Services\\PaymentApplicator@applyToSpecificInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapClient.php::App\\Services\\PaymentGateway\\TapClient::refundCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapClient@refundCharge",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::__construct",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::isClientError",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isClientError",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::isServerError",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isServerError",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Privacy/ConsentService.php::App\\Services\\Privacy\\ConsentService::history",
        "fqmn": "App\\Services\\Privacy\\ConsentService@history",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Privacy/ConsentService.php::App\\Services\\Privacy\\ConsentService::toggle",
        "fqmn": "App\\Services\\Privacy\\ConsentService@toggle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Privacy/DataAccessLogger.php::App\\Services\\Privacy\\DataAccessLogger::record",
        "fqmn": "App\\Services\\Privacy\\DataAccessLogger@record",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Privacy/DataAccessLogger.php::App\\Services\\Privacy\\DataAccessLogger::recordAsUser",
        "fqmn": "App\\Services\\Privacy\\DataAccessLogger@recordAsUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::categories",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@categories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::consentKeys",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@consentKeys",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::defaultFor",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@defaultFor",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::thirdPartyProcessors",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@thirdPartyProcessors",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/RefundAllocator.php::App\\Services\\RefundAllocator::allocate",
        "fqmn": "App\\Services\\RefundAllocator@allocate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Rewards/CompanyCancellationPointsFreeze.php::App\\Services\\Rewards\\CompanyCancellationPointsFreeze::freezeForCompany",
        "fqmn": "App\\Services\\Rewards\\CompanyCancellationPointsFreeze@freezeForCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Rewards/CompanyCancellationPointsFreeze.php::App\\Services\\Rewards\\CompanyCancellationPointsFreeze::previewForCompany",
        "fqmn": "App\\Services\\Rewards\\CompanyCancellationPointsFreeze@previewForCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Succession/CompanyValueTargetService.php::App\\Services\\Succession\\CompanyValueTargetService::canCoSign",
        "fqmn": "App\\Services\\Succession\\CompanyValueTargetService@canCoSign",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Succession/CompanyValueTargetService.php::App\\Services\\Succession\\CompanyValueTargetService::currentFor",
        "fqmn": "App\\Services\\Succession\\CompanyValueTargetService@currentFor",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Tasks/TaskBoardService.php::App\\Services\\Tasks\\TaskBoardService::columnOf",
        "fqmn": "App\\Services\\Tasks\\TaskBoardService@columnOf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Tasks/TaskBoardService.php::App\\Services\\Tasks\\TaskBoardService::columns",
        "fqmn": "App\\Services\\Tasks\\TaskBoardService@columns",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Tasks/TaskBoardService.php::App\\Services\\Tasks\\TaskBoardService::moveToColumn",
        "fqmn": "App\\Services\\Tasks\\TaskBoardService@moveToColumn",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Tasks/TaskBoardService.php::App\\Services\\Tasks\\TaskBoardService::reorderColumn",
        "fqmn": "App\\Services\\Tasks\\TaskBoardService@reorderColumn",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/TurnstileService.php::App\\Services\\TurnstileService::__construct",
        "fqmn": "App\\Services\\TurnstileService@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/TurnstileService.php::App\\Services\\TurnstileService::verify",
        "fqmn": "App\\Services\\TurnstileService@verify",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/DiDAnalysisWidget.php::App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/DiDAnalysisWidget.php::App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@resolve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/Widgets/CompanyStatusLineBuilder.php::App\\Services\\Widgets\\CompanyStatusLineBuilder::build",
        "fqmn": "App\\Services\\Widgets\\CompanyStatusLineBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::customerConverted",
        "fqmn": "App\\Services\\XCapi@customerConverted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::demoBooked",
        "fqmn": "App\\Services\\XCapi@demoBooked",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::leadSubmitted",
        "fqmn": "App\\Services\\XCapi@leadSubmitted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::track",
        "fqmn": "App\\Services\\XCapi@track",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::trialStarted",
        "fqmn": "App\\Services\\XCapi@trialStarted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::clearActiveCompany",
        "fqmn": "App\\Support\\CompanyAccess@clearActiveCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::clearAllCachedContexts",
        "fqmn": "App\\Support\\CompanyAccess@clearAllCachedContexts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getActiveCompanyContext",
        "fqmn": "App\\Support\\CompanyAccess@getActiveCompanyContext",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getActiveCompanyId",
        "fqmn": "App\\Support\\CompanyAccess@getActiveCompanyId",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getActiveCompanyName",
        "fqmn": "App\\Support\\CompanyAccess@getActiveCompanyName",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getActiveCompanyRole",
        "fqmn": "App\\Support\\CompanyAccess@getActiveCompanyRole",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getReportingScopeUserIds",
        "fqmn": "App\\Support\\CompanyAccess@getReportingScopeUserIds",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::hasAnyCompanyRole",
        "fqmn": "App\\Support\\CompanyAccess@hasAnyCompanyRole",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::hasAssistantAssigned",
        "fqmn": "App\\Support\\CompanyAccess@hasAssistantAssigned",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isActiveCompanyExplicit",
        "fqmn": "App\\Support\\CompanyAccess@isActiveCompanyExplicit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isEmployee",
        "fqmn": "App\\Support\\CompanyAccess@isEmployee",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isEmployer",
        "fqmn": "App\\Support\\CompanyAccess@isEmployer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isEmployerOrManager",
        "fqmn": "App\\Support\\CompanyAccess@isEmployerOrManager",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isManager",
        "fqmn": "App\\Support\\CompanyAccess@isManager",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isOfficeAssistant",
        "fqmn": "App\\Support\\CompanyAccess@isOfficeAssistant",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isSuperAdmin",
        "fqmn": "App\\Support\\CompanyAccess@isSuperAdmin",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isTeamLeader",
        "fqmn": "App\\Support\\CompanyAccess@isTeamLeader",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::setActiveCompany",
        "fqmn": "App\\Support\\CompanyAccess@setActiveCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/ControlRoom/WidgetRenderTracker.php::App\\Support\\ControlRoom\\WidgetRenderTracker::failures",
        "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@failures",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/ControlRoom/WidgetRenderTracker.php::App\\Support\\ControlRoom\\WidgetRenderTracker::reset",
        "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@reset",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/HtmlSanitizer.php::App\\Support\\HtmlSanitizer::clean",
        "fqmn": "App\\Support\\HtmlSanitizer@clean",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/HtmlSanitizer.php::App\\Support\\HtmlSanitizer::resetForTesting",
        "fqmn": "App\\Support\\HtmlSanitizer@resetForTesting",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/PciRedactor.php::App\\Support\\PciRedactor::sanitize",
        "fqmn": "App\\Support\\PciRedactor@sanitize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/Subscriptions/SubscriptionStatusSnapshot.php::App\\Support\\Subscriptions\\SubscriptionStatusSnapshot::for",
        "fqmn": "App\\Support\\Subscriptions\\SubscriptionStatusSnapshot@for",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/VatCalculator.php::App\\Support\\VatCalculator::netFromGrossHalalas",
        "fqmn": "App\\Support\\VatCalculator@netFromGrossHalalas",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/VatCalculator.php::App\\Support\\VatCalculator::vatOnHalalas",
        "fqmn": "App\\Support\\VatCalculator@vatOnHalalas",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/Wallet/WalletFreezeGuard.php::App\\Support\\Wallet\\WalletFreezeGuard::assertNotFrozen",
        "fqmn": "App\\Support\\Wallet\\WalletFreezeGuard@assertNotFrozen",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/WidgetResultContract.php::App\\Support\\WidgetResultContract::normalizePayload",
        "fqmn": "App\\Support\\WidgetResultContract@normalizePayload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "method::app/Support/WidgetResultContract.php::App\\Support\\WidgetResultContract::normalizeStatus",
        "fqmn": "App\\Support\\WidgetResultContract@normalizeStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit."
      },
      {
        "surface_id": "route::routes/api.php::get::/health::App\\Http\\Controllers\\Api\\HealthController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/api.php::get::/public/pricing-plans::closure",
        "fqmn": "route::routes/api.php::get::/public/pricing-plans::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/auth.php::get::/register::App\\Http\\Controllers\\Auth\\RegisteredUserController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/auth.php::get::/verify-email::App\\Http\\Controllers\\Auth\\EmailVerificationPromptController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/auth.php::get::/verify-email/{id}/{hash}::App\\Http\\Controllers\\Auth\\PublicVerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/internal_governance.php::get::/metrics/governance::closure",
        "fqmn": "route::routes/internal_governance.php::get::/metrics/governance::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "fqmn": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "fqmn": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web_test_login.php::get::/magic-login::closure",
        "fqmn": "route::routes/web_test_login.php::get::/magic-login::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/::App\\Http\\Controllers\\LandingController::__invoke",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/::App\\Http\\Controllers\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/::closure",
        "fqmn": "route::routes/web.php::get::/::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/' . $__panelSlug . '/login::closure",
        "fqmn": "route::routes/web.php::get::/' . $__panelSlug . '/login::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/assets/riyal.svg::closure",
        "fqmn": "route::routes/web.php::get::/assets/riyal.svg::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/auth/dev/setup::closure",
        "fqmn": "route::routes/web.php::get::/auth/dev/setup::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/billing/update-card/{cardId}::App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/dashboard::closure",
        "fqmn": "route::routes/web.php::get::/dashboard::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/dev/cr::App\\Filament\\Employer\\Pages\\ControlRoom::__invoke",
        "fqmn": "App\\Filament\\Employer\\Pages\\ControlRoom@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/privacy-policy::closure",
        "fqmn": "route::routes/web.php::get::/privacy-policy::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/setup::App\\Http\\Controllers\\Api\\SetupController::setup",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/setup/kpi::App\\Http\\Controllers\\Api\\SetupController::kpi",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/setup/test::App\\Http\\Controllers\\Api\\SetupController::test",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/temp/fix-recognition-cascade::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::fixCascadeBug",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/temp/migrate-recognition::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::debugMigrate",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/temp/recognition-company-check::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::companyCheck",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/temp/recompute-recognition-cascades::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::recomputeCascades",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::get::/terms-of-service::closure",
        "fqmn": "route::routes/web.php::get::/terms-of-service::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::post::/employer/plan-checkout/one-click-upgrade::App\\Http\\Controllers\\Employer\\PlanCheckoutController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      },
      {
        "surface_id": "route::routes/web.php::post::/employer/subscriptions/{subscription}/apply-downgrade::App\\Http\\Controllers\\Employer\\SubscriptionController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed."
      }
    ],
    "wire": [],
    "promote": [],
    "total_triaged": 1777,
    "framework_entry_points_excluded": 528
  },
  "framework_entry_points": {
    "total": 528,
    "by_kind": {
      "console_command": 137,
      "form_request": 41,
      "queued_job": 94,
      "event_listener": 11,
      "livewire_component": 1,
      "policy": 244
    },
    "note": "Framework entry points are invoked by Laravel's runtime (schedulers, queue workers, HTTP kernel, event dispatcher, Filament/Livewire lifecycles, etc.). They have zero direct PHP callers by design — excluded from dead-code triage so the DEFER bucket reflects truly uncertain surfaces, not framework hooks."
  },
  "duplication_map": {
    "clusters": [
      {
        "cluster_id": "cluster_001",
        "canonical": "App\\Console\\Commands\\AddUserToCompany@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\BackfillMissingPlanInvoices@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_002",
        "canonical": "App\\Console\\Commands\\ApplyLatestImport@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\DryRunLatestImport@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_003",
        "canonical": "App\\Console\\Commands\\AuditTrailManagement@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\MetricsAuditCommand@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_004",
        "canonical": "App\\Console\\Commands\\BackfillPlanInvoice@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\SeedTomatoSitesSettings@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_005",
        "canonical": "App\\Console\\Commands\\CheckZohoIntegrationHealth@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\ImportPreviewController@index",
          "App\\Listeners\\BroadcastDatabaseNotification@broadcastOn",
          "App\\Listeners\\BroadcastDatabaseNotification@broadcastWith"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_006",
        "canonical": "App\\Console\\Commands\\EnableHireReadinessCommand@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\Occasions\\BackfillManagerNotices@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_007",
        "canonical": "App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\ReconcileTapOrphans@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_008",
        "canonical": "App\\Console\\Commands\\ExpireTrialsCommand@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\NotifyTrialEndingSoonCommand@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_009",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\OcrAnalyticsReport@handle",
          "App\\Console\\Commands\\TestPoReferences@handle",
          "App\\Services\\FcmService@__construct",
          "App\\Services\\PushService@__construct",
          "App\\Services\\SalesCommissionService@__construct",
          "App\\Services\\TurnstileService@__construct",
          "App\\Services\\ZohoBooksService@__construct",
          "App\\Support\\Media\\SupplierPathGenerator@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 9,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_010",
        "canonical": "App\\Console\\Commands\\GenerateApiToken@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\UserCheckEmail@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_011",
        "canonical": "App\\Console\\Commands\\HelpSelfTest@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\WidgetsCacheCommand@handle",
          "App\\Console\\Commands\\WidgetsClearCommand@handle",
          "App\\Console\\Commands\\WuddCacheRefresh@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_012",
        "canonical": "App\\Console\\Commands\\MetricsComputeCommand@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\MetricsRecomputeRangeCommand@handle",
          "App\\Console\\Commands\\MetricsRefreshTodayCommand@handle",
          "App\\Domains\\Metrics\\Commands\\ComputeDayCommand@handle",
          "App\\Domains\\Metrics\\Commands\\ComputeRangeCommand@handle",
          "App\\Domains\\Metrics\\Commands\\RefreshTodayCommand@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 6,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_013",
        "canonical": "App\\Console\\Commands\\MonitorStuckCheckouts@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\MonitorStuckOrders@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_014",
        "canonical": "App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\SeedDemoAvatars@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_015",
        "canonical": "App\\Console\\Commands\\Occasions\\CleanupOldEvents@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\PruneAutomationHistory@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_016",
        "canonical": "App\\Console\\Commands\\Occasions\\QueueDailyPersonal@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\Occasions\\QueueHolidays@handle",
          "App\\Console\\Commands\\Occasions\\QueueWeeklyDigests@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_017",
        "canonical": "App\\Console\\Commands\\PopulateDocumentFieldIndex@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\ThreadsMigrateLegacyFields@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_018",
        "canonical": "App\\Console\\Commands\\ReconcileOrderInvoices@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\ReconcileSubscriptions@handle",
          "App\\Console\\Commands\\ScanZohoSideDrift@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_019",
        "canonical": "App\\Console\\Commands\\TestInvoicePayments@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Console\\Commands\\TestWalletAdvances@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_020",
        "canonical": "App\\Domains\\Decisions\\ExecutiveBriefService@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_021",
        "canonical": "App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@generateWeekly"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_022",
        "canonical": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_023",
        "canonical": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@__construct",
          "App\\Jobs\\SeedGuidedBadges@__construct",
          "App\\Jobs\\SeedGuidedCompanyValues@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_024",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@endUtc",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Metrics\\Support\\DayBoundary@riyadhDay",
          "App\\Domains\\Metrics\\Support\\DayBoundary@startUtc"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_025",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel",
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel",
          "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getModelLabel",
          "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getNavigationLabel",
          "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPluralModelLabel",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel",
          "App\\Http\\Requests\\Auth\\LoginRequest@throttleKey"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 11,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_026",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@form",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Sales\\Resources\\MyCompaniesResource@form"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_027",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getRelations",
          "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPages",
          "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getRelations",
          "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@getPages",
          "App\\Http\\Requests\\AssignTaskRequest@messages",
          "App\\Http\\Requests\\AssignTaskRequest@rules",
          "App\\Http\\Requests\\Auth\\LoginRequest@rules",
          "App\\Http\\Requests\\Document\\StoreDocumentRequest@messages",
          "App\\Http\\Requests\\Document\\StoreDocumentRequest@rules",
          "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@messages",
          "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@rules",
          "App\\Http\\Requests\\ProfileUpdateRequest@rules",
          "App\\Http\\Requests\\StoreGroupRequest@rules",
          "App\\Http\\Requests\\StoreMessageRequest@rules",
          "App\\Http\\Requests\\StoreRecognitionRequest@messages",
          "App\\Http\\Requests\\StoreTaskForDocumentRequest@rules",
          "App\\Http\\Requests\\StoreTaskRequest@messages",
          "App\\Http\\Requests\\StoreTaskRequest@rules",
          "App\\Http\\Requests\\UpdateGroupRequest@rules",
          "App\\Http\\Requests\\UpdateTaskForDocumentRequest@messages",
          "App\\Http\\Requests\\UpdateTaskForDocumentRequest@rules",
          "App\\Http\\Requests\\UpdateTaskRequest@messages",
          "App\\Http\\Requests\\UpdateTaskRequest@rules",
          "App\\Http\\Requests\\UpdateTaskStatusRequest@messages",
          "App\\Http\\Requests\\UpdateTaskStatusRequest@rules",
          "App\\Services\\Ai\\ResolvedAiAction@toArray",
          "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@toArray",
          "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@toArray",
          "App\\Services\\Digest\\Sources\\SourceBundle@toArray",
          "App\\Services\\HireReadiness\\DTO\\PeerSet@toArray",
          "App\\Services\\HireReadiness\\DTO\\TeamMetric@toArray",
          "App\\Services\\HireReadiness\\TeamSignalStatistics@signals",
          "App\\Services\\OcrClient@getConfig",
          "App\\Services\\Privacy\\PrivacyDataCatalog@categories",
          "App\\Services\\Privacy\\PrivacyDataCatalog@consentKeys",
          "App\\Services\\Succession\\MetricCatalog@all",
          "App\\Services\\ZeptoMailService@getStatus",
          "App\\Services\\ZohoBooksService@dbOrConfig",
          "App\\Support\\EmailTemplateCatalog@all",
          "App\\Support\\FeatureRegistry@all",
          "App\\Support\\Features\\Features@groupAliases",
          "App\\Support\\Features\\Features@masterChildren",
          "App\\Support\\GuidedBadges@templates",
          "App\\Support\\GuidedCompanyValues@templates",
          "App\\Support\\PlanVersions\\FeatureCatalog@seats",
          "App\\Support\\PlanVersions\\FeatureCatalog@trial"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 52,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_028",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@table",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table",
          "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@table"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_029",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@form",
          "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@form"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_030",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\FeatureBundles@map"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_031",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDeleteAny",
          "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canCreate",
          "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDeleteAny",
          "App\\Support\\RewardsAccess@isEnabled"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_032",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation",
          "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canViewAny",
          "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@shouldRegisterNavigation"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 7,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_033",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getEloquentQuery"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_034",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDelete"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_035",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@infolist"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_036",
        "canonical": "App\\Http\\Controllers\\Api\\AuthController@user",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\CompanyController@show",
          "App\\Http\\Controllers\\Api\\UserController@show"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_037",
        "canonical": "App\\Http\\Controllers\\Api\\AutomationController@activate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\AutomationController@pause"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_038",
        "canonical": "App\\Http\\Controllers\\Api\\AutomationController@audits",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\AutomationController@runs"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_039",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\BadgeController@index",
          "App\\Http\\Controllers\\Api\\BadgeTargetController@index",
          "App\\Http\\Controllers\\Api\\BadgeTargetController@myTargets",
          "App\\Http\\Controllers\\Api\\TaskController@index"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_040",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\BadgeController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_041",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@stats",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\RecognitionController@index",
          "App\\Http\\Controllers\\Api\\SettingsController@show"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_042",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\BadgeTargetController@store",
          "App\\Http\\Controllers\\Api\\DepartmentController@store",
          "App\\Http\\Controllers\\Api\\OccasionController@store",
          "App\\Http\\Controllers\\Api\\ReferralController@store",
          "App\\Http\\Controllers\\Api\\TeamController@store",
          "App\\Http\\Controllers\\Api\\ValueController@store"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 7,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_043",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeTargetController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\BadgeTargetController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_044",
        "canonical": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@me",
          "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@index",
          "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@index",
          "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@invoices",
          "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@orders",
          "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@products",
          "App\\Http\\Controllers\\Api\\Mobile\\MobileUserController@index"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 8,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_045",
        "canonical": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\CompanyDirectoryController@teams",
          "App\\Http\\Controllers\\Api\\CompanyDirectoryController@users"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_046",
        "canonical": "App\\Http\\Controllers\\Api\\DepartmentController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\DepartmentController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_047",
        "canonical": "App\\Http\\Controllers\\Api\\DepartmentController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\OccasionController@index",
          "App\\Http\\Controllers\\Api\\ReferralController@index",
          "App\\Http\\Controllers\\Api\\TeamController@index"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_048",
        "canonical": "App\\Http\\Controllers\\Api\\HealthController@status",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\HealthController@status"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_049",
        "canonical": "App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\JobController@listJobs"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_050",
        "canonical": "App\\Http\\Controllers\\Api\\LeaderboardController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@index",
          "App\\Http\\Controllers\\Api\\RecognitionController@feed"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_051",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@thread"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_052",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@changePassword"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_053",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@store"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_054",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\SetupController@kpi",
          "App\\Http\\Controllers\\Api\\SetupController@kpi",
          "App\\Http\\Controllers\\Api\\SetupController@setup",
          "App\\Http\\Controllers\\Api\\SetupController@setup",
          "App\\Http\\Controllers\\Api\\SetupController@test",
          "App\\Http\\Controllers\\Api\\SetupController@test"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 7,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_055",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@index"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_056",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@complete",
          "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@reject"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_057",
        "canonical": "App\\Http\\Controllers\\Api\\NotificationController@broadcastOn",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\NotificationController@broadcastWith"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_058",
        "canonical": "App\\Http\\Controllers\\Api\\NotificationController@count",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\NotificationController@markAllAsRead"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_059",
        "canonical": "App\\Http\\Controllers\\Api\\OccasionController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\OccasionController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_060",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
          "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
          "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
          "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
          "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
          "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
          "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 8,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_061",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\RecognitionController@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_062",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\RecognitionController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_063",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@listAttachments",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\RecognitionController@listComments"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_064",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@react",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\RecognitionController@show",
          "App\\Http\\Controllers\\Api\\RecognitionController@unreact"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_065",
        "canonical": "App\\Http\\Controllers\\Api\\ReferralController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\ReferralController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_066",
        "canonical": "App\\Http\\Controllers\\Api\\RewardController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\RewardController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_067",
        "canonical": "App\\Http\\Controllers\\Api\\RewardController@redeem",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\RewardController@show"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_068",
        "canonical": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyUpgrade"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_069",
        "canonical": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewUpgrade"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_070",
        "canonical": "App\\Http\\Controllers\\Api\\TaskController@listAttachments",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\TaskController@listWatchers"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_071",
        "canonical": "App\\Http\\Controllers\\Api\\TeamController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\TeamController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_072",
        "canonical": "App\\Http\\Controllers\\Api\\ValueController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Api\\ValueController@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_073",
        "canonical": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_074",
        "canonical": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_075",
        "canonical": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_076",
        "canonical": "App\\Http\\Controllers\\Auth\\NewPasswordController@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\ProfileController@edit"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_077",
        "canonical": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_078",
        "canonical": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Auth\\RegisteredUserController@create"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_079",
        "canonical": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_080",
        "canonical": "App\\Http\\Controllers\\CartController@add",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\CartController@index",
          "App\\Http\\Controllers\\CartController@update",
          "App\\Http\\Controllers\\SubscriptionController@billing"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_081",
        "canonical": "App\\Http\\Controllers\\Employer\\AutomationWebController@activate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Employer\\AutomationWebController@pause"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_082",
        "canonical": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardsPolicy"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_083",
        "canonical": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardTemplates"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_084",
        "canonical": "App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Employer\\BillingController@resumeSubscription"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_085",
        "canonical": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Employer\\SubscriptionController@applyUpgrade"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_086",
        "canonical": "App\\Http\\Controllers\\HelpController@dmTest",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\HelpController@health"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_087",
        "canonical": "App\\Http\\Controllers\\HomeController@home",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\RfqController@thankyou"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_088",
        "canonical": "App\\Http\\Controllers\\LandingController@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\LandingController@__invoke"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_089",
        "canonical": "App\\Http\\Controllers\\RecognitionController@addComment",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\RecognitionController@addReaction"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_090",
        "canonical": "App\\Http\\Controllers\\RfqController@form",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\SubscriptionController@checkout",
          "App\\Http\\Controllers\\SubscriptionController@confirm"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_091",
        "canonical": "App\\Http\\Controllers\\SubscriptionController@index",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\SubscriptionController@index",
          "App\\Http\\Controllers\\SubscriptionController@portal"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_092",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Document\\StoreDocumentRequest@authorize",
          "App\\Http\\Requests\\StoreTaskForDocumentRequest@authorize",
          "App\\Http\\Requests\\StoreTaskRequest@authorize",
          "App\\Http\\Requests\\UpdateTaskRequest@authorize",
          "App\\Http\\Requests\\UpdateTaskStatusRequest@authorize",
          "App\\Models\\HireRequest@isOpen",
          "App\\Models\\HireRequest@isReplacement",
          "App\\Services\\Digest\\Sources\\SourceBundle@isEmpty",
          "App\\Services\\HireReadiness\\DTO\\PeerSet@isEmpty",
          "App\\Services\\HireReadiness\\DTO\\TeamMetric@isIncluded",
          "App\\Services\\PaymentGateway\\TapRefundException@isClientError",
          "App\\Services\\PaymentGateway\\TapRefundException@isServerError",
          "App\\Services\\ZeptoMailService@isEnabled",
          "App\\Support\\ResettingUserQuery@exists"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 15,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_093",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@withValidator",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\UpdateTaskForDocumentRequest@withValidator",
          "App\\Http\\Requests\\UpdateTaskRequest@withValidator",
          "App\\Http\\Requests\\UpdateTaskStatusRequest@withValidator"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_094",
        "canonical": "App\\Http\\Requests\\Auth\\LoginRequest@authorize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\StoreGroupRequest@authorize",
          "App\\Http\\Requests\\UpdateGroupRequest@authorize",
          "App\\Models\\Company@canAddSeat"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_095",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ForecastService@getForecastWidgets",
          "App\\Services\\HireReadiness\\DTO\\AssessmentWindow@buckets",
          "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@includedMetrics",
          "App\\Services\\MappingService@getCanonicalKeys",
          "App\\Services\\Occasions\\TemplateVariables@helpList",
          "App\\Services\\ZohoIntegrationMonitor@checkHealth",
          "App\\Support\\ControlRoom\\WidgetRenderTracker@failures",
          "App\\Support\\EmployerNav@items",
          "App\\Support\\Features\\Features@bundleAliasSlugs"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 10,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_096",
        "canonical": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedTo"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_097",
        "canonical": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Models\\Product@computePointsCost",
          "App\\Services\\TaxService@getVatRateBps",
          "App\\Support\\ResettingUserQuery@count"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_098",
        "canonical": "App\\Http\\Requests\\StoreMessageRequest@authorize",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\HireReadinessAccess@canAccess",
          "App\\Support\\RefreshmentsAccess@canAccess",
          "App\\Support\\RefreshmentsAccess@canNavigate",
          "App\\Support\\StoreAccess@canAccess"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_099",
        "canonical": "App\\Http\\Resources\\GroupResource@toArray",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Resources\\MessageAttachmentResource@toArray",
          "App\\Http\\Resources\\UserResource@toArray"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_100",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\PostShippingExpenseToZoho@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_101",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\BatchSettleSupplierPayouts@middleware",
          "App\\Jobs\\Billing\\RecordGatewayFeeJob@middleware",
          "App\\Jobs\\CreateZohoBillForOrderSupplier@middleware",
          "App\\Jobs\\CreateZohoInvoiceForOrder@middleware",
          "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@middleware",
          "App\\Jobs\\EnsureOrderZohoAdvance@middleware",
          "App\\Jobs\\PostShippingExpenseToZoho@middleware",
          "App\\Jobs\\PrefetchPlanInvoice@middleware",
          "App\\Jobs\\PrefetchWalletReceipt@middleware",
          "App\\Jobs\\ProcessSupplierInvoiceOcr@tags",
          "App\\Jobs\\ProcessZohoOutboxEntry@middleware",
          "App\\Jobs\\RecordOtoTopUpInZoho@middleware",
          "App\\Jobs\\RecordSalesCommissionInZoho@middleware",
          "App\\Jobs\\ReverseOrderInZoho@middleware",
          "App\\Jobs\\SendZohoAdvance@middleware",
          "App\\Jobs\\SettleSupplierInvoicePayment@middleware",
          "App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob@middleware",
          "App\\Jobs\\SyncProductToZoho@middleware",
          "App\\Jobs\\UploadZohoBillAttachment@middleware"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 20,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_102",
        "canonical": "App\\Jobs\\CreateZohoInvoiceForOrder@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@__construct",
          "App\\Jobs\\EnsureOrderZohoAdvance@__construct",
          "App\\Jobs\\ReconcilePaymentForOrder@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_103",
        "canonical": "App\\Jobs\\GenerateDigestBatch@failed",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\SendOrderCompletionNotification@failed"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_104",
        "canonical": "App\\Jobs\\GenerateHelpBotReply@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\WarmKpiOkrCache@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_105",
        "canonical": "App\\Jobs\\MonitorStuckCheckouts@failed",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\MonitorStuckOrders@failed"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_106",
        "canonical": "App\\Jobs\\Occasions\\ManagerHeadsUpJob@middleware",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\Occasions\\OccasionEmailSendJob@middleware",
          "App\\Jobs\\Occasions\\OccasionEventDispatchJob@middleware",
          "App\\Jobs\\RetryTapWebhookJob@backoff"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_107",
        "canonical": "App\\Jobs\\ProcessSupplierInvoiceOcr@failed",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\SendApprovedDigests@failed"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_108",
        "canonical": "App\\Jobs\\ProcessTapPlanPurchase@middleware",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\ProcessTapPlanUpgrade@middleware"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_109",
        "canonical": "App\\Jobs\\RecordOtoTopUpInZoho@handle",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Jobs\\RecordSalesCommissionInZoho@handle"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_110",
        "canonical": "App\\Models\\HireRequest@approvals",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Models\\HireRequest@jdLines",
          "App\\Models\\HireRequest@outcomeCheckpoints"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_111",
        "canonical": "App\\Models\\HireRequest@company",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Models\\HireRequest@rejectedBy",
          "App\\Models\\HireRequest@replacementUser",
          "App\\Models\\HireRequest@requester",
          "App\\Models\\HireRequest@targetDepartment",
          "App\\Models\\HireRequest@targetTeam",
          "App\\Models\\Privacy\\DataSubjectRequest@company",
          "App\\Models\\Privacy\\DataSubjectRequest@processedByUser",
          "App\\Models\\Privacy\\DataSubjectRequest@user"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 9,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_112",
        "canonical": "App\\Models\\HireRequest@jobPosting",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Models\\HireRequest@report"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_113",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AccountingDriftPolicy@deleteAny",
          "App\\Policies\\NotificationFailurePolicy@create",
          "App\\Policies\\NotificationFailurePolicy@deleteAny",
          "App\\Policies\\PendingInvariantPatchPolicy@create",
          "App\\Policies\\PendingInvariantPatchPolicy@deleteAny",
          "App\\Policies\\SubscriptionAccountingDriftPolicy@create",
          "App\\Policies\\SubscriptionAccountingDriftPolicy@deleteAny",
          "App\\Policies\\TapSettlementJournalEntryPolicy@create",
          "App\\Policies\\TapSettlementJournalEntryPolicy@deleteAny",
          "App\\Policies\\ZohoDriftEventPolicy@create",
          "App\\Policies\\ZohoDriftEventPolicy@deleteAny",
          "App\\Policies\\ZohoSideEditPolicy@create",
          "App\\Policies\\ZohoSideEditPolicy@deleteAny"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 14,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_114",
        "canonical": "App\\Policies\\AccountingDriftPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AccountingDriftPolicy@forceDelete",
          "App\\Policies\\AccountingDriftPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_115",
        "canonical": "App\\Policies\\AccountingDriftPolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AccountingDriftPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_116",
        "canonical": "App\\Policies\\AccountingDriftPolicy@viewAny",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\NotificationFailurePolicy@viewAny",
          "App\\Policies\\PendingInvariantPatchPolicy@viewAny",
          "App\\Policies\\SubscriptionAccountingDriftPolicy@viewAny",
          "App\\Policies\\TapSettlementJournalEntryPolicy@viewAny",
          "App\\Policies\\ZohoDriftEventPolicy@viewAny",
          "App\\Policies\\ZohoSideEditPolicy@viewAny"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 7,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_117",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AdminSupplierInvoicePolicy@viewAny",
          "App\\Policies\\DocumentActivityLogPolicy@viewAny",
          "App\\Policies\\DocumentSharePolicy@viewAny",
          "App\\Policies\\DocumentVersionPolicy@create",
          "App\\Policies\\DocumentVersionPolicy@viewAny",
          "App\\Policies\\EmailTemplatePolicy@viewAny",
          "App\\Policies\\JobPostingPolicy@viewAny",
          "App\\Policies\\JobReferralPolicy@viewAny",
          "App\\Policies\\OrderPolicy@viewAny",
          "App\\Policies\\PlanPolicy@viewAny",
          "App\\Policies\\PlanVersionPolicy@create",
          "App\\Policies\\PlanVersionPolicy@deleteAny",
          "App\\Policies\\PlanVersionPolicy@viewAny",
          "App\\Policies\\RecognitionPolicy@viewAny",
          "App\\Policies\\SupplierOrderPolicy@viewAny",
          "App\\Policies\\SupplierPayoutPolicy@viewAny",
          "App\\Policies\\WalletTransactionPolicy@viewAny"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 18,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_118",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AdminSupplierInvoicePolicy@deleteAny",
          "App\\Policies\\DeliveryPolicy@create",
          "App\\Policies\\DisputePolicy@create",
          "App\\Policies\\DocumentPolicy@create",
          "App\\Policies\\DocumentPolicy@viewAny",
          "App\\Policies\\DocumentSharePolicy@create",
          "App\\Policies\\EmailTemplatePolicy@create",
          "App\\Policies\\OrderPolicy@create",
          "App\\Policies\\PlanPolicy@create",
          "App\\Policies\\PointsTransactionPolicy@create",
          "App\\Policies\\RecognitionPolicy@create",
          "App\\Policies\\SupplierOrderPolicy@create",
          "App\\Policies\\SupplierPayoutPolicy@create",
          "App\\Policies\\UserPolicy@create",
          "App\\Policies\\WalletTransactionPolicy@create"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 16,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_119",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AdminSupplierInvoicePolicy@forceDelete",
          "App\\Policies\\AdminSupplierInvoicePolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_120",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\AdminSupplierInvoicePolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_121",
        "canonical": "App\\Policies\\CompanySubscriptionPolicy@forceDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\CompanySubscriptionPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_122",
        "canonical": "App\\Policies\\CompanySubscriptionPolicy@reactivate",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\CompanySubscriptionPolicy@revoke"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_123",
        "canonical": "App\\Policies\\DeliveryPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DeliveryPolicy@forceDelete",
          "App\\Policies\\DeliveryPolicy@restore",
          "App\\Policies\\DeliveryPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_124",
        "canonical": "App\\Policies\\DeliveryPolicy@viewAny",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DisputePolicy@viewAny",
          "App\\Policies\\DisputePolicy@viewWidget",
          "App\\Policies\\ProductPolicy@deleteAny"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_125",
        "canonical": "App\\Policies\\DisputePolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DisputePolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_126",
        "canonical": "App\\Policies\\DocumentFieldPolicy@accept",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DocumentFieldPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_127",
        "canonical": "App\\Policies\\DocumentPolicy@comment",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DocumentPolicy@delete",
          "App\\Policies\\DocumentPolicy@manageShares",
          "App\\Policies\\DocumentPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_128",
        "canonical": "App\\Policies\\DocumentPolicy@forceDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DocumentPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_129",
        "canonical": "App\\Policies\\DocumentSharePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DocumentSharePolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_130",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DocumentTypePolicy@viewAny",
          "App\\Policies\\DunningPolicyPolicy@create",
          "App\\Policies\\DunningPolicyPolicy@deleteAny",
          "App\\Policies\\DunningPolicyPolicy@viewAny",
          "App\\Policies\\FieldDefinitionPolicy@create",
          "App\\Policies\\FieldDefinitionPolicy@viewAny",
          "App\\Policies\\KieTemplatePolicy@create",
          "App\\Policies\\KieTemplatePolicy@viewAny",
          "App\\Policies\\OrderVendorPosPolicy@create",
          "App\\Policies\\OrderVendorPosPolicy@viewAny",
          "App\\Policies\\PayoutPolicy@create",
          "App\\Policies\\PayoutPolicy@viewAny",
          "App\\Policies\\ProductPolicy@create",
          "App\\Policies\\ProductPolicy@viewAny",
          "App\\Policies\\SupplierInvoicePolicy@create",
          "App\\Policies\\SupplierInvoicePolicy@viewAny",
          "App\\Policies\\UserPolicy@viewAny",
          "App\\Policies\\WalletFreezeOverridePolicy@create",
          "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canCreate",
          "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isDepartmentManager",
          "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isEmployeeRole"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 22,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_131",
        "canonical": "App\\Policies\\DocumentTypePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DocumentTypePolicy@forceDelete",
          "App\\Policies\\DocumentTypePolicy@restore",
          "App\\Policies\\DocumentTypePolicy@update",
          "App\\Policies\\DocumentTypePolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_132",
        "canonical": "App\\Policies\\DocumentVersionPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DocumentVersionPolicy@review",
          "App\\Policies\\DocumentVersionPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_133",
        "canonical": "App\\Policies\\DunningPolicyPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\DunningPolicyPolicy@forceDelete",
          "App\\Policies\\DunningPolicyPolicy@restore",
          "App\\Policies\\DunningPolicyPolicy@update",
          "App\\Policies\\DunningPolicyPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_134",
        "canonical": "App\\Policies\\EmailTemplatePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\EmailTemplatePolicy@update",
          "App\\Policies\\EmailTemplatePolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_135",
        "canonical": "App\\Policies\\FieldDefinitionPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\FieldDefinitionPolicy@forceDelete",
          "App\\Policies\\FieldDefinitionPolicy@restore",
          "App\\Policies\\FieldDefinitionPolicy@update",
          "App\\Policies\\FieldDefinitionPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_136",
        "canonical": "App\\Policies\\JobPostingPolicy@before",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\JobReferralPolicy@before",
          "App\\Policies\\UserPolicy@before"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_137",
        "canonical": "App\\Policies\\JobPostingPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\JobPostingPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_138",
        "canonical": "App\\Policies\\KieTemplatePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\KieTemplatePolicy@forceDelete",
          "App\\Policies\\KieTemplatePolicy@restore",
          "App\\Policies\\KieTemplatePolicy@update",
          "App\\Policies\\KieTemplatePolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_139",
        "canonical": "App\\Policies\\NotificationFailurePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\NotificationFailurePolicy@forceDelete",
          "App\\Policies\\NotificationFailurePolicy@restore",
          "App\\Policies\\NotificationFailurePolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_140",
        "canonical": "App\\Policies\\OrderPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\OrderPolicy@forceDelete",
          "App\\Policies\\OrderPolicy@restore",
          "App\\Policies\\OrderPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_141",
        "canonical": "App\\Policies\\OrderVendorPosPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\OrderVendorPosPolicy@forceDelete",
          "App\\Policies\\OrderVendorPosPolicy@restore",
          "App\\Policies\\OrderVendorPosPolicy@update",
          "App\\Policies\\OrderVendorPosPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_142",
        "canonical": "App\\Policies\\PayoutPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PayoutPolicy@forceDelete",
          "App\\Policies\\PayoutPolicy@restore",
          "App\\Policies\\PayoutPolicy@update",
          "App\\Policies\\PayoutPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_143",
        "canonical": "App\\Policies\\PendingInvariantPatchPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PendingInvariantPatchPolicy@forceDelete",
          "App\\Policies\\PendingInvariantPatchPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_144",
        "canonical": "App\\Policies\\PendingInvariantPatchPolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PendingInvariantPatchPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_145",
        "canonical": "App\\Policies\\PlanPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PlanPolicy@forceDelete",
          "App\\Policies\\PlanPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_146",
        "canonical": "App\\Policies\\PlanPolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PlanPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_147",
        "canonical": "App\\Policies\\PlanVersionPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PlanVersionPolicy@update",
          "App\\Policies\\PlanVersionPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_148",
        "canonical": "App\\Policies\\PlanVersionPolicy@forceDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PlanVersionPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_149",
        "canonical": "App\\Policies\\PointsTransactionPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\PointsTransactionPolicy@forceDelete",
          "App\\Policies\\PointsTransactionPolicy@restore",
          "App\\Policies\\PointsTransactionPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_150",
        "canonical": "App\\Policies\\ProductPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ProductPolicy@update",
          "App\\Policies\\ProductPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_151",
        "canonical": "App\\Policies\\ProductPolicy@forceDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ProductPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_152",
        "canonical": "App\\Policies\\RecognitionPolicy@forceDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\RecognitionPolicy@restore",
          "App\\Policies\\RecognitionPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_153",
        "canonical": "App\\Policies\\RefreshmentPresetPolicy@create",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\RefreshmentPresetPolicy@deleteAny",
          "App\\Policies\\RefreshmentPresetPolicy@viewAny"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_154",
        "canonical": "App\\Policies\\RefreshmentPresetPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\RefreshmentPresetPolicy@update",
          "App\\Policies\\RefreshmentPresetPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_155",
        "canonical": "App\\Policies\\RefreshmentPresetPolicy@forceDelete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\RefreshmentPresetPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_156",
        "canonical": "App\\Policies\\ReminderPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ReminderPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_157",
        "canonical": "App\\Policies\\SubscriptionAccountingDriftPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\SubscriptionAccountingDriftPolicy@forceDelete",
          "App\\Policies\\SubscriptionAccountingDriftPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_158",
        "canonical": "App\\Policies\\SubscriptionAccountingDriftPolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\SubscriptionAccountingDriftPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_159",
        "canonical": "App\\Policies\\SupplierInvoicePolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\SupplierInvoicePolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_160",
        "canonical": "App\\Policies\\SupplierOrderPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\SupplierOrderPolicy@forceDelete",
          "App\\Policies\\SupplierOrderPolicy@restore",
          "App\\Policies\\SupplierOrderPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_161",
        "canonical": "App\\Policies\\SupplierPayoutPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\SupplierPayoutPolicy@forceDelete",
          "App\\Policies\\SupplierPayoutPolicy@restore",
          "App\\Policies\\SupplierPayoutPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_162",
        "canonical": "App\\Policies\\TapSettlementJournalEntryPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\TapSettlementJournalEntryPolicy@forceDelete",
          "App\\Policies\\TapSettlementJournalEntryPolicy@restore",
          "App\\Policies\\TapSettlementJournalEntryPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_163",
        "canonical": "App\\Policies\\TaskPolicy@approve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\TaskPolicy@delete",
          "App\\Policies\\TaskPolicy@update",
          "App\\Policies\\TaskPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_164",
        "canonical": "App\\Policies\\UserPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\UserPolicy@forceDelete",
          "App\\Policies\\UserPolicy@restore",
          "App\\Policies\\UserPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_165",
        "canonical": "App\\Policies\\WalletFreezeOverridePolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\WalletFreezeOverridePolicy@forceDelete",
          "App\\Policies\\WalletFreezeOverridePolicy@restore",
          "App\\Policies\\WalletFreezeOverridePolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_166",
        "canonical": "App\\Policies\\WalletTransactionPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\WalletTransactionPolicy@forceDelete",
          "App\\Policies\\WalletTransactionPolicy@restore",
          "App\\Policies\\WalletTransactionPolicy@update"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_167",
        "canonical": "App\\Policies\\ZohoDriftEventPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ZohoDriftEventPolicy@forceDelete",
          "App\\Policies\\ZohoDriftEventPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_168",
        "canonical": "App\\Policies\\ZohoDriftEventPolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ZohoDriftEventPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_169",
        "canonical": "App\\Policies\\ZohoSideEditPolicy@delete",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ZohoSideEditPolicy@forceDelete",
          "App\\Policies\\ZohoSideEditPolicy@restore"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_170",
        "canonical": "App\\Policies\\ZohoSideEditPolicy@update",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Policies\\ZohoSideEditPolicy@view"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_171",
        "canonical": "App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Awareness\\FairnessAnalyticsService@getRecognitionEquityIndex",
          "App\\Services\\Awareness\\FairnessAnalyticsService@getSiloScoreByDepartment"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_172",
        "canonical": "App\\Services\\Awareness\\MessageIntensityScorer@charCount",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Awareness\\MessageIntensityScorer@countExclamationRuns",
          "App\\Services\\Awareness\\MessageIntensityScorer@countRepeatedCharRuns"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_173",
        "canonical": "App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyGenericPhrase",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyIntensifierPhrase"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_174",
        "canonical": "App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Awareness\\ValuesAnalyticsService@getImpactScores",
          "App\\Services\\Awareness\\ValuesAnalyticsService@getRisingValues"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_175",
        "canonical": "App\\Services\\BadgeOkrService@getResultOrientedTargets",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\BadgeOkrService@getTaskOrientedTargets",
          "App\\Services\\BadgeOkrService@getTeamProgress"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_176",
        "canonical": "App\\Services\\BadgeService@createDefaultBadges",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\LeaderboardService@createDefaultLeaderboards"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_177",
        "canonical": "App\\Services\\BehaviorDriversService@compute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Predictive\\TeamStabilityIndex@compute"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_178",
        "canonical": "App\\Services\\CompanyInsightsService@getCompanyHealth",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\CultureMetricsService@getTeamCollaboration",
          "App\\Services\\EmployeeWellnessService@getWellnessIndex"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_179",
        "canonical": "App\\Services\\CompanyInsightsService@getPerformanceTrends",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\EmployeeWellnessService@getSatisfactionMetrics",
          "App\\Services\\TeamProductivityService@getTeamProductivityIndex"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_180",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder@build",
          "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@build",
          "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@build"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_181",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@all",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Metrics\\WidgetMetadataRegistry@all",
          "App\\Services\\WidgetMatrixService@groupByUiContainer"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_182",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@builder",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@renderer"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_183",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Metrics\\WidgetMetadataRegistry@clearCache",
          "App\\Services\\Widgets\\BaseSnapshotWidget@clearSnapshotCache",
          "App\\Services\\Widgets\\BaseWidget@clearResolveCache",
          "App\\Support\\CompanyAccess@clearAllCachedContexts",
          "App\\Support\\HtmlSanitizer@resetForTesting"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 6,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_184",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@hasShape",
          "App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder@hasShape",
          "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@hasShape"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_185",
        "canonical": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@toPercentage"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_186",
        "canonical": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@median"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_187",
        "canonical": "App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ControlRoomLeaderboardService@getParticipantLeaderboard",
          "App\\Services\\ControlRoomLeaderboardService@getPointsGainersLeaderboard",
          "App\\Services\\ControlRoomLeaderboardService@getReceiverLeaderboard"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_188",
        "canonical": "App\\Services\\CulturalMomentumService@compute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Predictive\\CulturalMomentumService@compute",
          "App\\Services\\PromptGeneratorService@prompts"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_189",
        "canonical": "App\\Services\\Dashboard\\ValuesPieComposer@compose",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\RecognitionPolicyService@forCompany"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_190",
        "canonical": "App\\Services\\Email\\CompanyMailer@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\FeatureGateService@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_191",
        "canonical": "App\\Services\\Entitlements@hasActiveSubscription",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\SubscriptionResolver@hasActiveSubscription"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_192",
        "canonical": "App\\Services\\ExecutiveSummaryService@build",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Summaries\\OkrSummaryBuilder@build"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_193",
        "canonical": "App\\Services\\GPTService@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OcrClient@__construct",
          "App\\Services\\OtoClient@__construct",
          "App\\Services\\ZeptoMailService@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_194",
        "canonical": "App\\Services\\GPTService@chatJson",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\GPTService@chatPlain"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_195",
        "canonical": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@compute"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_196",
        "canonical": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\HireReadiness\\Signals\\TaskThroughput@compute"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_197",
        "canonical": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@compute",
          "App\\Services\\HireReadiness\\Signals\\TenureMix@compute"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_198",
        "canonical": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@stddev"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_199",
        "canonical": "App\\Services\\KnowledgeService@upsertDepartmentKnowledge",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\KnowledgeService@upsertNameKnowledge"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_200",
        "canonical": "App\\Services\\KpiOkrService@getOkrMomentumForecast",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\KpiOkrService@getOkrPaceTracker",
          "App\\Services\\KpiOkrService@getRecognitionValueGap"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_201",
        "canonical": "App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\LeadershipEffectivenessService@getManagerCoverageQuality"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_202",
        "canonical": "App\\Services\\LinkedInCapi@demoBooked",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\LinkedInCapi@leadSubmitted",
          "App\\Services\\LinkedInCapi@trialStarted"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_203",
        "canonical": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Metrics\\WidgetMetadataRegistry@glossary",
          "App\\Services\\Succession\\MetricCatalog@nativeKeys",
          "App\\Support\\Features\\Features@allSlugs",
          "App\\Support\\Features\\Features@groups"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_204",
        "canonical": "App\\Services\\Metrics\\WidgetMetadataRegistry@definition",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Metrics\\WidgetMetadataRegistry@disambiguator",
          "App\\Services\\Metrics\\WidgetMetadataRegistry@displayName",
          "App\\Services\\Metrics\\WidgetMetadataRegistry@formula"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 4,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_205",
        "canonical": "App\\Services\\MoneyMovementService@transferFromWallet",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\MoneyMovementService@transferToWallet"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_206",
        "canonical": "App\\Services\\Occasions\\FeatureGate@getAvailableFeatures",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ZohoDataValidator@validateCompanyForZoho"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_207",
        "canonical": "App\\Services\\Occasions\\FeatureGate@getFeatureDescription",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Occasions\\FeatureGate@getRequiredPlanLevel"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_208",
        "canonical": "App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Occasions\\TemplateVariables@resolve"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_209",
        "canonical": "App\\Services\\OkrAutoTargetService@getOkrSettings",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OkrAutoTargetService@preview"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_210",
        "canonical": "App\\Services\\OrderCompletionService@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\PaymentProcessingCoordinator@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_211",
        "canonical": "App\\Services\\OrderReconciliationService@scan",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\OrderReconciliationService@scanSubscriptions"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_212",
        "canonical": "App\\Services\\Promotion\\PromotionApplicationService@activeCooldown",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Promotion\\PromotionApplicationService@latestApplication"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_213",
        "canonical": "App\\Services\\RaiseNotifier@sendApproved",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\RaiseNotifier@sendDeclined"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_214",
        "canonical": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildScoreBreakdown"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_215",
        "canonical": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@draft"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_216",
        "canonical": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@hasAuthorityOver"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_217",
        "canonical": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userDepartmentId"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_218",
        "canonical": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userTeamIds"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_219",
        "canonical": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isSecondSundayOfMonth"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_220",
        "canonical": "App\\Services\\StrategyAlignment\\PointsBalance@earned",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\StrategyAlignment\\PointsBalance@spent"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_221",
        "canonical": "App\\Services\\StrategyAlignment\\PointsBalance@forfeited",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\StrategyAlignment\\PointsBalance@onHold"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_222",
        "canonical": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftOkrs",
          "App\\Services\\Succession\\SuccessionGptClient@generateCurriculumWithRetry"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_223",
        "canonical": "App\\Services\\Succession\\MetricCatalog@isNative",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Succession\\MetricCatalog@requiresIntegration"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_224",
        "canonical": "App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget@resolve"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_225",
        "canonical": "App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget@resolve",
          "App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget@resolve"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_226",
        "canonical": "App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget@resolve",
          "App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget@resolve"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_227",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_228",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@resolve"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_229",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@__construct",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@__construct",
          "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@__construct"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_230",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@resolve",
          "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@resolve",
          "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@resolve",
          "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@resolve"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 5,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_231",
        "canonical": "App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget@resolve"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_232",
        "canonical": "App\\Services\\Widgets\\BaseWidget@resolve",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\Widgets\\BaseWidget@resolveDeduped"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_233",
        "canonical": "App\\Services\\XCapi@demoBooked",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\XCapi@leadSubmitted",
          "App\\Services\\XCapi@trialStarted"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_234",
        "canonical": "App\\Services\\ZohoBooksService@getCustomerAdvances",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Services\\ZohoBooksService@getUnpaidInvoices"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_235",
        "canonical": "App\\Services\\ZohoIntegrationMonitor@performHealthCheck",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\ControlRoom\\WidgetRenderTracker@reset"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_236",
        "canonical": "App\\Support\\CompanyAccess@isEmployee",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\CompanyAccess@isEmployer",
          "App\\Support\\CompanyAccess@isEmployerOrManager",
          "App\\Support\\CompanyAccess@isManager",
          "App\\Support\\CompanyAccess@isOfficeAssistant",
          "App\\Support\\CompanyAccess@isTeamLeader"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 6,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_237",
        "canonical": "App\\Support\\FeatureRegistry@exists",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\FeatureRegistry@isPreviewable"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_238",
        "canonical": "App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Features\\FeatureOverridesNormalizer@flattenOverrides"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_239",
        "canonical": "App\\Support\\Help@loadCapabilities",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Help@loadFewshots",
          "App\\Support\\Help@loadWorkflows"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_240",
        "canonical": "App\\Support\\HelpId@hrefFor",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\HelpId@idFor"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_241",
        "canonical": "App\\Support\\HelpId@keys",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\HelpId@manifest"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_242",
        "canonical": "App\\Support\\JobsAccess@ensure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\RefreshmentsAccess@ensure",
          "App\\Support\\StoreAccess@ensure"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_243",
        "canonical": "App\\Support\\Logging\\LogFake@assertLogged",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Logging\\LogFake@assertNotLogged"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_244",
        "canonical": "App\\Support\\Media\\SupplierPathGenerator@getPath",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Media\\SupplierPathGenerator@getPathForConversions",
          "App\\Support\\Media\\SupplierPathGenerator@getPathForResponsiveImages"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_245",
        "canonical": "App\\Support\\NavBuilder@buildAdminGroups",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\NavBuilder@buildAdminItems"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_246",
        "canonical": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\PlanVersions\\PlanVersionSynchronizer@collectFormMeta"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_247",
        "canonical": "App\\Support\\Roles@isSuperAdmin",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Roles@isSupplier"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_248",
        "canonical": "App\\Support\\Storage\\PdfStorageGateway@fullPath",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\Storage\\PdfStorageGateway@read"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_249",
        "canonical": "App\\Support\\TeamScoping@scopeTasksQuery",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Support\\TeamScoping@scopeUsersQuery"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_250",
        "canonical": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/web.php::get::/privacy-policy::closure"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_251",
        "canonical": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/web.php::get::/auth/dev/setup::closure"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 2,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_252",
        "canonical": "route::routes/web_test_login.php::get::/magic-login::closure",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "route::routes/web.php::get::/::closure",
          "route::routes/web.php::get::/dashboard::closure"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      },
      {
        "cluster_id": "cluster_253",
        "canonical": "App\\Filament\\Employer\\Pages\\ControlRoom@__invoke",
        "canonical_selection_rule": "most_callers_then_oldest_then_lexicographic_fqmn",
        "duplicates": [
          "App\\Http\\Controllers\\Employer\\PlanCheckoutController@__invoke",
          "App\\Http\\Controllers\\Employer\\SubscriptionController@__invoke"
        ],
        "similarity_signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "similarity_score": 1,
        "surfaces_in_cluster": 3,
        "candidate_action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL"
      }
    ],
    "total_clusters": 253,
    "total_surfaces_in_clusters": 865
  },
  "coverage_gaps": {
    "gaps": [
      {
        "surface_id": "method::app/Console/Commands/AccrueGatewayFeesDaily.php::App\\Console\\Commands\\AccrueGatewayFeesDaily::handle",
        "fqmn": "App\\Console\\Commands\\AccrueGatewayFeesDaily@handle",
        "expected_test_path": "tests/Unit/AccrueGatewayFeesDailyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/AddUserToCompany.php::App\\Console\\Commands\\AddUserToCompany::handle",
        "fqmn": "App\\Console\\Commands\\AddUserToCompany@handle",
        "expected_test_path": "tests/Unit/AddUserToCompanyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/AnalyzeInvoiceConfidence.php::App\\Console\\Commands\\AnalyzeInvoiceConfidence::handle",
        "fqmn": "App\\Console\\Commands\\AnalyzeInvoiceConfidence@handle",
        "expected_test_path": "tests/Unit/AnalyzeInvoiceConfidenceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ApplyLatestImport.php::App\\Console\\Commands\\ApplyLatestImport::handle",
        "fqmn": "App\\Console\\Commands\\ApplyLatestImport@handle",
        "expected_test_path": "tests/Unit/ApplyLatestImportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ApplyScheduledDowngrades.php::App\\Console\\Commands\\ApplyScheduledDowngrades::handle",
        "fqmn": "App\\Console\\Commands\\ApplyScheduledDowngrades@handle",
        "expected_test_path": "tests/Unit/ApplyScheduledDowngradesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ArchiveOldEvents.php::App\\Console\\Commands\\ArchiveOldEvents::handle",
        "fqmn": "App\\Console\\Commands\\ArchiveOldEvents@handle",
        "expected_test_path": "tests/Unit/ArchiveOldEventsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/AuditTrailManagement.php::App\\Console\\Commands\\AuditTrailManagement::handle",
        "fqmn": "App\\Console\\Commands\\AuditTrailManagement@handle",
        "expected_test_path": "tests/Unit/AuditTrailManagementTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BackfillAdvancePdfs.php::App\\Console\\Commands\\BackfillAdvancePdfs::handle",
        "fqmn": "App\\Console\\Commands\\BackfillAdvancePdfs@handle",
        "expected_test_path": "tests/Unit/BackfillAdvancePdfsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BackfillKpiAnalytics.php::App\\Console\\Commands\\BackfillKpiAnalytics::handle",
        "fqmn": "App\\Console\\Commands\\BackfillKpiAnalytics@handle",
        "expected_test_path": "tests/Unit/BackfillKpiAnalyticsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BackfillMessageConversationIds.php::App\\Console\\Commands\\BackfillMessageConversationIds::handle",
        "fqmn": "App\\Console\\Commands\\BackfillMessageConversationIds@handle",
        "expected_test_path": "tests/Unit/BackfillMessageConversationIdsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BackfillMissingPlanInvoices.php::App\\Console\\Commands\\BackfillMissingPlanInvoices::handle",
        "fqmn": "App\\Console\\Commands\\BackfillMissingPlanInvoices@handle",
        "expected_test_path": "tests/Unit/BackfillMissingPlanInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BackfillPlanInvoice.php::App\\Console\\Commands\\BackfillPlanInvoice::handle",
        "fqmn": "App\\Console\\Commands\\BackfillPlanInvoice@handle",
        "expected_test_path": "tests/Unit/BackfillPlanInvoiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BackfillRewardsSettingsCommand.php::App\\Console\\Commands\\BackfillRewardsSettingsCommand::handle",
        "fqmn": "App\\Console\\Commands\\BackfillRewardsSettingsCommand@handle",
        "expected_test_path": "tests/Unit/BackfillRewardsSettingsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BackfillZohoBills.php::App\\Console\\Commands\\BackfillZohoBills::handle",
        "fqmn": "App\\Console\\Commands\\BackfillZohoBills@handle",
        "expected_test_path": "tests/Unit/BackfillZohoBillsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/BuildHelpCapabilities.php::App\\Console\\Commands\\BuildHelpCapabilities::handle",
        "fqmn": "App\\Console\\Commands\\BuildHelpCapabilities@handle",
        "expected_test_path": "tests/Unit/BuildHelpCapabilitiesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CheckDocument.php::App\\Console\\Commands\\CheckDocument::handle",
        "fqmn": "App\\Console\\Commands\\CheckDocument@handle",
        "expected_test_path": "tests/Unit/CheckDocumentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CheckGatewayFeeDrift.php::App\\Console\\Commands\\CheckGatewayFeeDrift::handle",
        "fqmn": "App\\Console\\Commands\\CheckGatewayFeeDrift@handle",
        "expected_test_path": "tests/Unit/CheckGatewayFeeDriftTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CheckHireOutcomesCommand.php::App\\Console\\Commands\\CheckHireOutcomesCommand::handle",
        "fqmn": "App\\Console\\Commands\\CheckHireOutcomesCommand@handle",
        "expected_test_path": "tests/Unit/CheckHireOutcomesCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CheckRoute.php::App\\Console\\Commands\\CheckRoute::handle",
        "fqmn": "App\\Console\\Commands\\CheckRoute@handle",
        "expected_test_path": "tests/Unit/CheckRouteTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CheckTables.php::App\\Console\\Commands\\CheckTables::handle",
        "fqmn": "App\\Console\\Commands\\CheckTables@handle",
        "expected_test_path": "tests/Unit/CheckTablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CheckZohoIntegrationHealth.php::App\\Console\\Commands\\CheckZohoIntegrationHealth::handle",
        "fqmn": "App\\Console\\Commands\\CheckZohoIntegrationHealth@handle",
        "expected_test_path": "tests/Unit/CheckZohoIntegrationHealthTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CleanupExpiredStockReservations.php::App\\Console\\Commands\\CleanupExpiredStockReservations::handle",
        "fqmn": "App\\Console\\Commands\\CleanupExpiredStockReservations@handle",
        "expected_test_path": "tests/Unit/CleanupExpiredStockReservationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeCliqueCandidatesSnapshots.php::App\\Console\\Commands\\ComputeCliqueCandidatesSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeCliqueCandidatesSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeCliqueCandidatesSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeEngagementHealthSnapshots.php::App\\Console\\Commands\\ComputeEngagementHealthSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeEngagementHealthSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeEngagementHealthSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeLeadershipSnapshots.php::App\\Console\\Commands\\ComputeLeadershipSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeLeadershipSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeLeadershipSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeManagerialLeverageSnapshots.php::App\\Console\\Commands\\ComputeManagerialLeverageSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeManagerialLeverageSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeManagerialLeverageSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeNetworkSnapshots.php::App\\Console\\Commands\\ComputeNetworkSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeNetworkSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeNetworkSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeOkrAutoTargets.php::App\\Console\\Commands\\ComputeOkrAutoTargets::handle",
        "fqmn": "App\\Console\\Commands\\ComputeOkrAutoTargets@handle",
        "expected_test_path": "tests/Unit/ComputeOkrAutoTargetsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeRecognitionPredictions.php::App\\Console\\Commands\\ComputeRecognitionPredictions::handle",
        "fqmn": "App\\Console\\Commands\\ComputeRecognitionPredictions@handle",
        "expected_test_path": "tests/Unit/ComputeRecognitionPredictionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeRiskIntegritySnapshots.php::App\\Console\\Commands\\ComputeRiskIntegritySnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeRiskIntegritySnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeRiskIntegritySnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeSilentDaysMapSnapshots.php::App\\Console\\Commands\\ComputeSilentDaysMapSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeSilentDaysMapSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeSilentDaysMapSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeTeamCoverageSnapshots.php::App\\Console\\Commands\\ComputeTeamCoverageSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeTeamCoverageSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeTeamCoverageSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeThursdayOffRewards.php::App\\Console\\Commands\\ComputeThursdayOffRewards::handle",
        "fqmn": "App\\Console\\Commands\\ComputeThursdayOffRewards@handle",
        "expected_test_path": "tests/Unit/ComputeThursdayOffRewardsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeTimelinessSnapshots.php::App\\Console\\Commands\\ComputeTimelinessSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeTimelinessSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeTimelinessSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ComputeUnderRecognizedSnapshots.php::App\\Console\\Commands\\ComputeUnderRecognizedSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeUnderRecognizedSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeUnderRecognizedSnapshotsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/CreateUser.php::App\\Console\\Commands\\CreateUser::handle",
        "fqmn": "App\\Console\\Commands\\CreateUser@handle",
        "expected_test_path": "tests/Unit/CreateUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DemoCompanyRefresh.php::App\\Console\\Commands\\DemoCompanyRefresh::handle",
        "fqmn": "App\\Console\\Commands\\DemoCompanyRefresh@handle",
        "expected_test_path": "tests/Unit/DemoCompanyRefreshTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DemoCompanySeed.php::App\\Console\\Commands\\DemoCompanySeed::handle",
        "fqmn": "App\\Console\\Commands\\DemoCompanySeed@handle",
        "expected_test_path": "tests/Unit/DemoCompanySeedTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DemoCompanyShape.php::App\\Console\\Commands\\DemoCompanyShape::handle",
        "fqmn": "App\\Console\\Commands\\DemoCompanyShape@handle",
        "expected_test_path": "tests/Unit/DemoCompanyShapeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DemoCompanyStats.php::App\\Console\\Commands\\DemoCompanyStats::handle",
        "fqmn": "App\\Console\\Commands\\DemoCompanyStats@handle",
        "expected_test_path": "tests/Unit/DemoCompanyStatsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DetectZohoSideEditsCommand.php::App\\Console\\Commands\\DetectZohoSideEditsCommand::handle",
        "fqmn": "App\\Console\\Commands\\DetectZohoSideEditsCommand@handle",
        "expected_test_path": "tests/Unit/DetectZohoSideEditsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DispatchDueDunningAttempts.php::App\\Console\\Commands\\DispatchDueDunningAttempts::handle",
        "fqmn": "App\\Console\\Commands\\DispatchDueDunningAttempts@handle",
        "expected_test_path": "tests/Unit/DispatchDueDunningAttemptsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/DryRunLatestImport.php::App\\Console\\Commands\\DryRunLatestImport::handle",
        "fqmn": "App\\Console\\Commands\\DryRunLatestImport@handle",
        "expected_test_path": "tests/Unit/DryRunLatestImportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/EnableHireReadinessCommand.php::App\\Console\\Commands\\EnableHireReadinessCommand::handle",
        "fqmn": "App\\Console\\Commands\\EnableHireReadinessCommand@handle",
        "expected_test_path": "tests/Unit/EnableHireReadinessCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/EnforceRewardApprovals.php::App\\Console\\Commands\\EnforceRewardApprovals::handle",
        "fqmn": "App\\Console\\Commands\\EnforceRewardApprovals@handle",
        "expected_test_path": "tests/Unit/EnforceRewardApprovalsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ExpireAndForfeitPoints.php::App\\Console\\Commands\\ExpireAndForfeitPoints::handle",
        "fqmn": "App\\Console\\Commands\\ExpireAndForfeitPoints@handle",
        "expected_test_path": "tests/Unit/ExpireAndForfeitPointsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ExpireExtraSeats.php::App\\Console\\Commands\\ExpireExtraSeats::handle",
        "fqmn": "App\\Console\\Commands\\ExpireExtraSeats@handle",
        "expected_test_path": "tests/Unit/ExpireExtraSeatsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ExpireFrozenCompanyCancellationPoints.php::App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints::handle",
        "fqmn": "App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints@handle",
        "expected_test_path": "tests/Unit/ExpireFrozenCompanyCancellationPointsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ExpireTrialsCommand.php::App\\Console\\Commands\\ExpireTrialsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ExpireTrialsCommand@handle",
        "expected_test_path": "tests/Unit/ExpireTrialsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/FinalizeBackorders.php::App\\Console\\Commands\\FinalizeBackorders::handle",
        "fqmn": "App\\Console\\Commands\\FinalizeBackorders@handle",
        "expected_test_path": "tests/Unit/FinalizeBackordersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/FixPurchaseOrderReferences.php::App\\Console\\Commands\\FixPurchaseOrderReferences::handle",
        "fqmn": "App\\Console\\Commands\\FixPurchaseOrderReferences@handle",
        "expected_test_path": "tests/Unit/FixPurchaseOrderReferencesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/FixSuperAdmin.php::App\\Console\\Commands\\FixSuperAdmin::handle",
        "fqmn": "App\\Console\\Commands\\FixSuperAdmin@handle",
        "expected_test_path": "tests/Unit/FixSuperAdminTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/FixUsersLastLoginColumns.php::App\\Console\\Commands\\FixUsersLastLoginColumns::handle",
        "fqmn": "App\\Console\\Commands\\FixUsersLastLoginColumns@handle",
        "expected_test_path": "tests/Unit/FixUsersLastLoginColumnsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/GenerateApiToken.php::App\\Console\\Commands\\GenerateApiToken::handle",
        "fqmn": "App\\Console\\Commands\\GenerateApiToken@handle",
        "expected_test_path": "tests/Unit/GenerateApiTokenTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/HelpSelfTest.php::App\\Console\\Commands\\HelpSelfTest::handle",
        "fqmn": "App\\Console\\Commands\\HelpSelfTest@handle",
        "expected_test_path": "tests/Unit/HelpSelfTestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ImportCreateDirect.php::App\\Console\\Commands\\ImportCreateDirect::handle",
        "fqmn": "App\\Console\\Commands\\ImportCreateDirect@handle",
        "expected_test_path": "tests/Unit/ImportCreateDirectTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ImportCreateDummyAndApply.php::App\\Console\\Commands\\ImportCreateDummyAndApply::handle",
        "fqmn": "App\\Console\\Commands\\ImportCreateDummyAndApply@handle",
        "expected_test_path": "tests/Unit/ImportCreateDummyAndApplyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ImportCreateXlsxAndApply.php::App\\Console\\Commands\\ImportCreateXlsxAndApply::handle",
        "fqmn": "App\\Console\\Commands\\ImportCreateXlsxAndApply@handle",
        "expected_test_path": "tests/Unit/ImportCreateXlsxAndApplyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ImportTestCustomHeaders.php::App\\Console\\Commands\\ImportTestCustomHeaders::handle",
        "fqmn": "App\\Console\\Commands\\ImportTestCustomHeaders@handle",
        "expected_test_path": "tests/Unit/ImportTestCustomHeadersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Invoices/ProcessSmartInvoicesCommand.php::App\\Console\\Commands\\Invoices\\ProcessSmartInvoicesCommand::handle",
        "fqmn": "App\\Console\\Commands\\Invoices\\ProcessSmartInvoicesCommand@handle",
        "expected_test_path": "tests/Unit/ProcessSmartInvoicesCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MarkUserNotificationsRead.php::App\\Console\\Commands\\MarkUserNotificationsRead::handle",
        "fqmn": "App\\Console\\Commands\\MarkUserNotificationsRead@handle",
        "expected_test_path": "tests/Unit/MarkUserNotificationsReadTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MetricsAuditCommand.php::App\\Console\\Commands\\MetricsAuditCommand::handle",
        "fqmn": "App\\Console\\Commands\\MetricsAuditCommand@handle",
        "expected_test_path": "tests/Unit/MetricsAuditCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MetricsComputeCommand.php::App\\Console\\Commands\\MetricsComputeCommand::handle",
        "fqmn": "App\\Console\\Commands\\MetricsComputeCommand@handle",
        "expected_test_path": "tests/Unit/MetricsComputeCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MetricsRecomputeRangeCommand.php::App\\Console\\Commands\\MetricsRecomputeRangeCommand::handle",
        "fqmn": "App\\Console\\Commands\\MetricsRecomputeRangeCommand@handle",
        "expected_test_path": "tests/Unit/MetricsRecomputeRangeCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MetricsRefreshTodayCommand.php::App\\Console\\Commands\\MetricsRefreshTodayCommand::handle",
        "fqmn": "App\\Console\\Commands\\MetricsRefreshTodayCommand@handle",
        "expected_test_path": "tests/Unit/MetricsRefreshTodayCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MigrateAutomationBudgetsToSar.php::App\\Console\\Commands\\MigrateAutomationBudgetsToSar::handle",
        "fqmn": "App\\Console\\Commands\\MigrateAutomationBudgetsToSar@handle",
        "expected_test_path": "tests/Unit/MigrateAutomationBudgetsToSarTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/MigrateRecognitionTransactionsToPoints.php::App\\Console\\Commands\\MigrateRecognitionTransactionsToPoints::handle",
        "fqmn": "App\\Console\\Commands\\MigrateRecognitionTransactionsToPoints@handle",
        "expected_test_path": "tests/Unit/MigrateRecognitionTransactionsToPointsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/NotifyTrialEndingSoonCommand.php::App\\Console\\Commands\\NotifyTrialEndingSoonCommand::handle",
        "fqmn": "App\\Console\\Commands\\NotifyTrialEndingSoonCommand@handle",
        "expected_test_path": "tests/Unit/NotifyTrialEndingSoonCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/AutoSeedLocalOccasions.php::App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions@handle",
        "expected_test_path": "tests/Unit/AutoSeedLocalOccasionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/BackfillManagerNotices.php::App\\Console\\Commands\\Occasions\\BackfillManagerNotices::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\BackfillManagerNotices@handle",
        "expected_test_path": "tests/Unit/BackfillManagerNoticesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/CleanupOldEvents.php::App\\Console\\Commands\\Occasions\\CleanupOldEvents::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\CleanupOldEvents@handle",
        "expected_test_path": "tests/Unit/CleanupOldEventsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/QueueHolidays.php::App\\Console\\Commands\\Occasions\\QueueHolidays::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\QueueHolidays@handle",
        "expected_test_path": "tests/Unit/QueueHolidaysTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/QueueWeeklyDigests.php::App\\Console\\Commands\\Occasions\\QueueWeeklyDigests::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\QueueWeeklyDigests@handle",
        "expected_test_path": "tests/Unit/QueueWeeklyDigestsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/SendPasswordResetTest.php::App\\Console\\Commands\\Occasions\\SendPasswordResetTest::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\SendPasswordResetTest@handle",
        "expected_test_path": "tests/Unit/SendPasswordResetTestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/SendSmtpTest.php::App\\Console\\Commands\\Occasions\\SendSmtpTest::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\SendSmtpTest@handle",
        "expected_test_path": "tests/Unit/SendSmtpTestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/SendTestOccasion.php::App\\Console\\Commands\\Occasions\\SendTestOccasion::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\SendTestOccasion@handle",
        "expected_test_path": "tests/Unit/SendTestOccasionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/Occasions/SendZeptoTest.php::App\\Console\\Commands\\Occasions\\SendZeptoTest::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\SendZeptoTest@handle",
        "expected_test_path": "tests/Unit/SendZeptoTestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/PopulateDocumentFieldIndex.php::App\\Console\\Commands\\PopulateDocumentFieldIndex::handle",
        "fqmn": "App\\Console\\Commands\\PopulateDocumentFieldIndex@handle",
        "expected_test_path": "tests/Unit/PopulateDocumentFieldIndexTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/PrepareVatReturn.php::App\\Console\\Commands\\PrepareVatReturn::handle",
        "fqmn": "App\\Console\\Commands\\PrepareVatReturn@handle",
        "expected_test_path": "tests/Unit/PrepareVatReturnTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ProcessSmartInvoices.php::App\\Console\\Commands\\ProcessSmartInvoices::handle",
        "fqmn": "App\\Console\\Commands\\ProcessSmartInvoices@handle",
        "expected_test_path": "tests/Unit/ProcessSmartInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/PruneAutomationHistory.php::App\\Console\\Commands\\PruneAutomationHistory::handle",
        "fqmn": "App\\Console\\Commands\\PruneAutomationHistory@handle",
        "expected_test_path": "tests/Unit/PruneAutomationHistoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/PruneCheckoutDrafts.php::App\\Console\\Commands\\PruneCheckoutDrafts::handle",
        "fqmn": "App\\Console\\Commands\\PruneCheckoutDrafts@handle",
        "expected_test_path": "tests/Unit/PruneCheckoutDraftsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/PruneNotifications.php::App\\Console\\Commands\\PruneNotifications::handle",
        "fqmn": "App\\Console\\Commands\\PruneNotifications@handle",
        "expected_test_path": "tests/Unit/PruneNotificationsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RebuildCrossTenantBenchmarksCommand.php::App\\Console\\Commands\\RebuildCrossTenantBenchmarksCommand::handle",
        "fqmn": "App\\Console\\Commands\\RebuildCrossTenantBenchmarksCommand@handle",
        "expected_test_path": "tests/Unit/RebuildCrossTenantBenchmarksCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ReconcileOrderInvoices.php::App\\Console\\Commands\\ReconcileOrderInvoices::handle",
        "fqmn": "App\\Console\\Commands\\ReconcileOrderInvoices@handle",
        "expected_test_path": "tests/Unit/ReconcileOrderInvoicesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ReconcileSubscriptions.php::App\\Console\\Commands\\ReconcileSubscriptions::handle",
        "fqmn": "App\\Console\\Commands\\ReconcileSubscriptions@handle",
        "expected_test_path": "tests/Unit/ReconcileSubscriptionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ReconcileTapOrphans.php::App\\Console\\Commands\\ReconcileTapOrphans::handle",
        "fqmn": "App\\Console\\Commands\\ReconcileTapOrphans@handle",
        "expected_test_path": "tests/Unit/ReconcileTapOrphansTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ReconcileTapSettlements.php::App\\Console\\Commands\\ReconcileTapSettlements::handle",
        "fqmn": "App\\Console\\Commands\\ReconcileTapSettlements@handle",
        "expected_test_path": "tests/Unit/ReconcileTapSettlementsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RunBiasAudit.php::App\\Console\\Commands\\RunBiasAudit::handle",
        "fqmn": "App\\Console\\Commands\\RunBiasAudit@handle",
        "expected_test_path": "tests/Unit/RunBiasAuditTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/RunRaiseEvaluation.php::App\\Console\\Commands\\RunRaiseEvaluation::handle",
        "fqmn": "App\\Console\\Commands\\RunRaiseEvaluation@handle",
        "expected_test_path": "tests/Unit/RunRaiseEvaluationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ScanZohoSideDrift.php::App\\Console\\Commands\\ScanZohoSideDrift::handle",
        "fqmn": "App\\Console\\Commands\\ScanZohoSideDrift@handle",
        "expected_test_path": "tests/Unit/ScanZohoSideDriftTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ScheduleSuccessionNudges.php::App\\Console\\Commands\\ScheduleSuccessionNudges::handle",
        "fqmn": "App\\Console\\Commands\\ScheduleSuccessionNudges@handle",
        "expected_test_path": "tests/Unit/ScheduleSuccessionNudgesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SeedDemoAvatars.php::App\\Console\\Commands\\SeedDemoAvatars::handle",
        "fqmn": "App\\Console\\Commands\\SeedDemoAvatars@handle",
        "expected_test_path": "tests/Unit/SeedDemoAvatarsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SeedPromotionProfilesCommand.php::App\\Console\\Commands\\SeedPromotionProfilesCommand::handle",
        "fqmn": "App\\Console\\Commands\\SeedPromotionProfilesCommand@handle",
        "expected_test_path": "tests/Unit/SeedPromotionProfilesCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SeedSiteSettings.php::App\\Console\\Commands\\SeedSiteSettings::handle",
        "fqmn": "App\\Console\\Commands\\SeedSiteSettings@handle",
        "expected_test_path": "tests/Unit/SeedSiteSettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SeedTomatoSitesSettings.php::App\\Console\\Commands\\SeedTomatoSitesSettings::handle",
        "fqmn": "App\\Console\\Commands\\SeedTomatoSitesSettings@handle",
        "expected_test_path": "tests/Unit/SeedTomatoSitesSettingsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SendCustomKpiReminders.php::App\\Console\\Commands\\SendCustomKpiReminders::handle",
        "fqmn": "App\\Console\\Commands\\SendCustomKpiReminders@handle",
        "expected_test_path": "tests/Unit/SendCustomKpiRemindersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SimulateDigestSchedule.php::App\\Console\\Commands\\SimulateDigestSchedule::handle",
        "fqmn": "App\\Console\\Commands\\SimulateDigestSchedule@handle",
        "expected_test_path": "tests/Unit/SimulateDigestScheduleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SweepHirePollResponsesCommand.php::App\\Console\\Commands\\SweepHirePollResponsesCommand::handle",
        "fqmn": "App\\Console\\Commands\\SweepHirePollResponsesCommand@handle",
        "expected_test_path": "tests/Unit/SweepHirePollResponsesCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/SweepRejectionQuests.php::App\\Console\\Commands\\SweepRejectionQuests::handle",
        "fqmn": "App\\Console\\Commands\\SweepRejectionQuests@handle",
        "expected_test_path": "tests/Unit/SweepRejectionQuestsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TapSelfTest.php::App\\Console\\Commands\\TapSelfTest::handle",
        "fqmn": "App\\Console\\Commands\\TapSelfTest@handle",
        "expected_test_path": "tests/Unit/TapSelfTestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TapSubscriptionsSelfTest.php::App\\Console\\Commands\\TapSubscriptionsSelfTest::handle",
        "fqmn": "App\\Console\\Commands\\TapSubscriptionsSelfTest@handle",
        "expected_test_path": "tests/Unit/TapSubscriptionsSelfTestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TestInvoicePayments.php::App\\Console\\Commands\\TestInvoicePayments::handle",
        "fqmn": "App\\Console\\Commands\\TestInvoicePayments@handle",
        "expected_test_path": "tests/Unit/TestInvoicePaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TestWalletAdvances.php::App\\Console\\Commands\\TestWalletAdvances::handle",
        "fqmn": "App\\Console\\Commands\\TestWalletAdvances@handle",
        "expected_test_path": "tests/Unit/TestWalletAdvancesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TestWalletPayments.php::App\\Console\\Commands\\TestWalletPayments::handle",
        "fqmn": "App\\Console\\Commands\\TestWalletPayments@handle",
        "expected_test_path": "tests/Unit/TestWalletPaymentsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ThreadsMigrateLegacyFields.php::App\\Console\\Commands\\ThreadsMigrateLegacyFields::handle",
        "fqmn": "App\\Console\\Commands\\ThreadsMigrateLegacyFields@handle",
        "expected_test_path": "tests/Unit/ThreadsMigrateLegacyFieldsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/TickZohoOutbox.php::App\\Console\\Commands\\TickZohoOutbox::handle",
        "fqmn": "App\\Console\\Commands\\TickZohoOutbox@handle",
        "expected_test_path": "tests/Unit/TickZohoOutboxTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/UserCheckEmail.php::App\\Console\\Commands\\UserCheckEmail::handle",
        "fqmn": "App\\Console\\Commands\\UserCheckEmail@handle",
        "expected_test_path": "tests/Unit/UserCheckEmailTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/UserReport.php::App\\Console\\Commands\\UserReport::handle",
        "fqmn": "App\\Console\\Commands\\UserReport@handle",
        "expected_test_path": "tests/Unit/UserReportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/VerifyOccasionsSchemaUnification.php::App\\Console\\Commands\\VerifyOccasionsSchemaUnification::handle",
        "fqmn": "App\\Console\\Commands\\VerifyOccasionsSchemaUnification@handle",
        "expected_test_path": "tests/Unit/VerifyOccasionsSchemaUnificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WarmWidgetsCommand.php::App\\Console\\Commands\\WarmWidgetsCommand::handle",
        "fqmn": "App\\Console\\Commands\\WarmWidgetsCommand@handle",
        "expected_test_path": "tests/Unit/WarmWidgetsCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WidgetsCacheCommand.php::App\\Console\\Commands\\WidgetsCacheCommand::handle",
        "fqmn": "App\\Console\\Commands\\WidgetsCacheCommand@handle",
        "expected_test_path": "tests/Unit/WidgetsCacheCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WidgetsClearCommand.php::App\\Console\\Commands\\WidgetsClearCommand::handle",
        "fqmn": "App\\Console\\Commands\\WidgetsClearCommand@handle",
        "expected_test_path": "tests/Unit/WidgetsClearCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/WidgetsSnapshotCommand.php::App\\Console\\Commands\\WidgetsSnapshotCommand::handle",
        "fqmn": "App\\Console\\Commands\\WidgetsSnapshotCommand@handle",
        "expected_test_path": "tests/Unit/WidgetsSnapshotCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Console/Commands/ZohoSeedFakeDocs.php::App\\Console\\Commands\\ZohoSeedFakeDocs::handle",
        "fqmn": "App\\Console\\Commands\\ZohoSeedFakeDocs@handle",
        "expected_test_path": "tests/Unit/ZohoSeedFakeDocsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Analytics/Policy/AnalyticsPolicy.php::App\\Domains\\Analytics\\Policy\\AnalyticsPolicy::allowEquity",
        "fqmn": "App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@allowEquity",
        "expected_test_path": "tests/Unit/AnalyticsPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Analytics/Policy/AnalyticsPolicy.php::App\\Domains\\Analytics\\Policy\\AnalyticsPolicy::applyConfidenceGating",
        "fqmn": "App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@applyConfidenceGating",
        "expected_test_path": "tests/Unit/AnalyticsPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Decisions/ExecutiveBriefService.php::App\\Domains\\Decisions\\ExecutiveBriefService::weeklyBrief",
        "fqmn": "App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief",
        "expected_test_path": "tests/Unit/ExecutiveBriefServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Decisions/Services/ExecutiveBriefService.php::App\\Domains\\Decisions\\Services\\ExecutiveBriefService::generateWeekly",
        "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@generateWeekly",
        "expected_test_path": "tests/Feature/ExecutiveBriefServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Classification/MetricClassificationEngine.php::App\\Domains\\Metrics\\Classification\\MetricClassificationEngine::validateClassification",
        "fqmn": "App\\Domains\\Metrics\\Classification\\MetricClassificationEngine@validateClassification",
        "expected_test_path": "tests/Unit/MetricClassificationEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Commands/ComputeDayCommand.php::App\\Domains\\Metrics\\Commands\\ComputeDayCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeDayCommand@handle",
        "expected_test_path": "tests/Unit/ComputeDayCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Commands/ComputeRangeCommand.php::App\\Domains\\Metrics\\Commands\\ComputeRangeCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeRangeCommand@handle",
        "expected_test_path": "tests/Unit/ComputeRangeCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Commands/RefreshTodayCommand.php::App\\Domains\\Metrics\\Commands\\RefreshTodayCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\RefreshTodayCommand@handle",
        "expected_test_path": "tests/Unit/RefreshTodayCommandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceService.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceService::isSemanticChange",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceService@isSemanticChange",
        "expected_test_path": "tests/Unit/MetricGovernanceServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceService.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceService::snapshotDefinition",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceService@snapshotDefinition",
        "expected_test_path": "tests/Unit/MetricGovernanceServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceValidator.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator::validate",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator@validate",
        "expected_test_path": "tests/Unit/MetricGovernanceValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@handle",
        "expected_test_path": "tests/Feature/ComputeFactsRangeJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/RecomputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@handle",
        "expected_test_path": "tests/Feature/RecomputeFactsRangeJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Jobs/RefreshTodayFactsJob.php::App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@handle",
        "expected_test_path": "tests/Feature/RefreshTodayFactsJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::businessEndUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@businessEndUtc",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::businessStartUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@businessStartUtc",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::endUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@endUtc",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::isWeekendRiyadh",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@isWeekendRiyadh",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::riyadhDay",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@riyadhDay",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::startUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@startUtc",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::todayRiyadh",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::isCanonical",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@isCanonical",
        "expected_test_path": "tests/Unit/PeriodKeyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::normalize",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@normalize",
        "expected_test_path": "tests/Unit/PeriodKeyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::toDays",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@toDays",
        "expected_test_path": "tests/Unit/PeriodKeyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Metrics/Support/RedisLock.php::App\\Domains\\Metrics\\Support\\RedisLock::acquire",
        "fqmn": "App\\Domains\\Metrics\\Support\\RedisLock@acquire",
        "expected_test_path": "tests/Unit/RedisLockTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@form",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getRelations",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getRelations",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@table",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@form",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getModelLabel",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPages",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getRelations",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getRelations",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@table",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "expected_test_path": "tests/Unit/BillingEventLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/BillingEventLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages",
        "expected_test_path": "tests/Unit/BillingEventLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table",
        "expected_test_path": "tests/Unit/BillingEventLogResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@form",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getPages",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@table",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource/Pages/ViewNotificationFailure.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure@infolist",
        "expected_test_path": "tests/Unit/ViewNotificationFailureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@form",
        "expected_test_path": "tests/Unit/OtoTopupResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/OtoTopupResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getPages",
        "expected_test_path": "tests/Unit/OtoTopupResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@table",
        "expected_test_path": "tests/Unit/OtoTopupResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canCreate",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDeleteAny",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canViewAny",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@form",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@getPages",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@table",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@form",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getNavigationLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getRelations",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@table",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canCreate",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDelete",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDeleteAny",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canViewAny",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@form",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@getPages",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@infolist",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@table",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Account/MembershipStatusController.php::App\\Http\\Controllers\\Account\\MembershipStatusController::hasActiveMembership",
        "fqmn": "App\\Http\\Controllers\\Account\\MembershipStatusController@hasActiveMembership",
        "expected_test_path": "tests/Feature/MembershipStatusControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Account/MembershipStatusController.php::App\\Http\\Controllers\\Account\\MembershipStatusController::show",
        "fqmn": "App\\Http\\Controllers\\Account\\MembershipStatusController@show",
        "expected_test_path": "tests/Feature/MembershipStatusControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::forgotPassword",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@forgotPassword",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@login",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@logout",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::register",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@register",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::resendVerification",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@resendVerification",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::resetPassword",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@resetPassword",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::user",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@user",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::activate",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@activate",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::audits",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@audits",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::pause",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@pause",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::runs",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@runs",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@store",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@update",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BackorderController.php::App\\Http\\Controllers\\Api\\BackorderController::cancel",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderController@cancel",
        "expected_test_path": "tests/Feature/BackorderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BackorderEscalationController.php::App\\Http\\Controllers\\Api\\BackorderEscalationController::contactSupplier",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderEscalationController@contactSupplier",
        "expected_test_path": "tests/Feature/BackorderEscalationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BackorderEscalationController.php::App\\Http\\Controllers\\Api\\BackorderEscalationController::escalate",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderEscalationController@escalate",
        "expected_test_path": "tests/Feature/BackorderEscalationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BackupController.php::App\\Http\\Controllers\\Api\\BackupController::run",
        "fqmn": "App\\Http\\Controllers\\Api\\BackupController@run",
        "expected_test_path": "tests/Feature/BackupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::available",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@available",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::companyStats",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@destroy",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::grant",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@grant",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@index",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@show",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::stats",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@stats",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@update",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@destroy",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@index",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::myTargets",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@myTargets",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@show",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@store",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@update",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CartValidationController.php::App\\Http\\Controllers\\Api\\CartValidationController::check",
        "fqmn": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "expected_test_path": "tests/Feature/CartValidationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyController.php::App\\Http\\Controllers\\Api\\CompanyController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@show",
        "expected_test_path": "tests/Feature/CompanyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyController.php::App\\Http\\Controllers\\Api\\CompanyController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@update",
        "expected_test_path": "tests/Feature/CompanyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::departments",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments",
        "expected_test_path": "tests/Feature/CompanyDirectoryControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::teams",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@teams",
        "expected_test_path": "tests/Feature/CompanyDirectoryControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::users",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@users",
        "expected_test_path": "tests/Feature/CompanyDirectoryControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ConfigController.php::App\\Http\\Controllers\\Api\\ConfigController::config",
        "fqmn": "App\\Http\\Controllers\\Api\\ConfigController@config",
        "expected_test_path": "tests/Feature/ConfigControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DeliveryController.php::App\\Http\\Controllers\\Api\\DeliveryController::getStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\DeliveryController@getStatus",
        "expected_test_path": "tests/Feature/DeliveryControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@destroy",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@index",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@show",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@store",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@update",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@approve",
        "expected_test_path": "tests/Feature/DigestControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::batchApprove",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@batchApprove",
        "expected_test_path": "tests/Feature/DigestControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::feedback",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@feedback",
        "expected_test_path": "tests/Feature/DigestControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@reject",
        "expected_test_path": "tests/Feature/DigestControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::confirmType",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@confirmType",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::download",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@download",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::getClassification",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@getClassification",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@index",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@show",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@store",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::canPerformAction",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@canPerformAction",
        "expected_test_path": "tests/Feature/DocumentShareControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@destroy",
        "expected_test_path": "tests/Feature/DocumentShareControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@index",
        "expected_test_path": "tests/Feature/DocumentShareControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@store",
        "expected_test_path": "tests/Feature/DocumentShareControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::diff",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@diff",
        "expected_test_path": "tests/Feature/DocumentVersionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@index",
        "expected_test_path": "tests/Feature/DocumentVersionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@show",
        "expected_test_path": "tests/Feature/DocumentVersionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::updateField",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@updateField",
        "expected_test_path": "tests/Feature/DocumentVersionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@destroy",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::getPlaceholders",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@getPlaceholders",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@index",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::preview",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@preview",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@show",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@store",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::testSend",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@testSend",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@update",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Employer/BillingSnapshotController.php::App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController@show",
        "expected_test_path": "tests/Feature/BillingSnapshotControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/EntitlementsController.php::App\\Http\\Controllers\\Api\\EntitlementsController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\EntitlementsController@show",
        "expected_test_path": "tests/Feature/EntitlementsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/FeaturePreviewController.php::App\\Http\\Controllers\\Api\\FeaturePreviewController::start",
        "fqmn": "App\\Http\\Controllers\\Api\\FeaturePreviewController@start",
        "expected_test_path": "tests/Feature/FeaturePreviewControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/HealthController.php::App\\Http\\Controllers\\Api\\HealthController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "expected_test_path": "tests/Feature/HealthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::dmTest",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@dmTest",
        "expected_test_path": "tests/Feature/HelpChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::health",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@health",
        "expected_test_path": "tests/Feature/HelpChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@send",
        "expected_test_path": "tests/Feature/HelpChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::adminJobMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@adminJobMetrics",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::companyJobMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@companyJobMetrics",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::downloadReferralCv",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@downloadReferralCv",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::getReferralInsights",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@getReferralInsights",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listAllReferrals",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listAllReferrals",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listCompanyReferrals",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listJobs",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listJobs",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::storeJob",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@storeJob",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::storeReferral",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@storeReferral",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::updateJob",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@updateJob",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::updateReferralStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@updateReferralStatus",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@destroy",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@index",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::resolve",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@resolve",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@show",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@store",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@update",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/LeaderboardController.php::App\\Http\\Controllers\\Api\\LeaderboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\LeaderboardController@index",
        "expected_test_path": "tests/Feature/LeaderboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/LinkPreviewController.php::App\\Http\\Controllers\\Api\\LinkPreviewController::fetch",
        "fqmn": "App\\Http\\Controllers\\Api\\LinkPreviewController@fetch",
        "expected_test_path": "tests/Feature/LinkPreviewControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/IntegrityController.php::App\\Http\\Controllers\\Api\\Mobile\\IntegrityController::verify",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\IntegrityController@verify",
        "expected_test_path": "tests/Feature/IntegrityControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::completeOnboarding",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@completeOnboarding",
        "expected_test_path": "tests/Feature/MobileAuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::login",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@login",
        "expected_test_path": "tests/Feature/MobileAuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@logout",
        "expected_test_path": "tests/Feature/MobileAuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::me",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@me",
        "expected_test_path": "tests/Feature/MobileAuthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@index",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::init",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@init",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markAllAsRead",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::markThreadRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::muteThread",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@muteThread",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::react",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@react",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::read",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@read",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@show",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showAttachment",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showGroup",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroup",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showGroupMessages",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroupMessages",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@store",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::thread",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@thread",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::threadMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@threadMetrics",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::users",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@users",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileConfigController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController::version",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController@version",
        "expected_test_path": "tests/Feature/MobileConfigControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileDeviceController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy",
        "expected_test_path": "tests/Feature/MobileDeviceControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileDeviceController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@store",
        "expected_test_path": "tests/Feature/MobileDeviceControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLeaderboardController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController@index",
        "expected_test_path": "tests/Feature/MobileLeaderboardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLogController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLogController::batch",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch",
        "expected_test_path": "tests/Feature/MobileLogControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLogController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLogController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@store",
        "expected_test_path": "tests/Feature/MobileLogControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileMapsController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController::static",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController@static",
        "expected_test_path": "tests/Feature/MobileMapsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@index",
        "expected_test_path": "tests/Feature/MobileNotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "expected_test_path": "tests/Feature/MobileNotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAsRead",
        "expected_test_path": "tests/Feature/MobileNotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileProfileController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController::changePassword",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@changePassword",
        "expected_test_path": "tests/Feature/MobileProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileProfileController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@update",
        "expected_test_path": "tests/Feature/MobileProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@index",
        "expected_test_path": "tests/Feature/MobileRecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@store",
        "expected_test_path": "tests/Feature/MobileRecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::values",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@values",
        "expected_test_path": "tests/Feature/MobileRecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRefreshmentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController::presets",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets",
        "expected_test_path": "tests/Feature/MobileRefreshmentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRefreshmentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController::request",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@request",
        "expected_test_path": "tests/Feature/MobileRefreshmentControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::invoices",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@invoices",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::markReady",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@markReady",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::orders",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@orders",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::products",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@products",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::stats",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@stats",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::accept",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@complete",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@index",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@reject",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::requested",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@requested",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@store",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileUserController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileUserController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUserController@index",
        "expected_test_path": "tests/Feature/MobileUserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastAs",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastAs",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastOn",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastOn",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastWith",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastWith",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::count",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@count",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@index",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@markAllAsRead",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@markAsRead",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/OcrAnalyticsController.php::App\\Http\\Controllers\\Api\\OcrAnalyticsController::kpis",
        "fqmn": "App\\Http\\Controllers\\Api\\OcrAnalyticsController@kpis",
        "expected_test_path": "tests/Feature/OcrAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/PlanVersionController.php::App\\Http\\Controllers\\Api\\PlanVersionController::features",
        "fqmn": "App\\Http\\Controllers\\Api\\PlanVersionController@features",
        "expected_test_path": "tests/Feature/PlanVersionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/PlanVersionController.php::App\\Http\\Controllers\\Api\\PlanVersionController::publicVersions",
        "fqmn": "App\\Http\\Controllers\\Api\\PlanVersionController@publicVersions",
        "expected_test_path": "tests/Feature/PlanVersionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/Properties/UnitController.php::App\\Http\\Controllers\\Api\\Properties\\UnitController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Properties\\UnitController@store",
        "expected_test_path": "tests/Feature/UnitControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::companyCheck",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::debugMigrate",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::fixCascadeBug",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@index",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::kpiOkr",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@kpiOkr",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::recomputeCascades",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::addAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@addAttachment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::addComment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@addComment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::deleteAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@deleteAttachment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::deleteComment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@deleteComment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@destroy",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::feed",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@feed",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@index",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::listAttachments",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listAttachments",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::listComments",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listComments",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::react",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@react",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@show",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@store",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::unreact",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@unreact",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@update",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionExportController.php::App\\Http\\Controllers\\Api\\RecognitionExportController::csv",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionExportController@csv",
        "expected_test_path": "tests/Feature/RecognitionExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RecognitionKpiExportController.php::App\\Http\\Controllers\\Api\\RecognitionKpiExportController::export",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionKpiExportController@export",
        "expected_test_path": "tests/Feature/RecognitionKpiExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@destroy",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@index",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@show",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@store",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@update",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@destroy",
        "expected_test_path": "tests/Feature/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@index",
        "expected_test_path": "tests/Feature/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@store",
        "expected_test_path": "tests/Feature/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@update",
        "expected_test_path": "tests/Feature/ReminderControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@destroy",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@index",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::redeem",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@redeem",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@show",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@store",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@update",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SettingsController.php::App\\Http\\Controllers\\Api\\SettingsController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@show",
        "expected_test_path": "tests/Feature/SettingsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SettingsController.php::App\\Http\\Controllers\\Api\\SettingsController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@update",
        "expected_test_path": "tests/Feature/SettingsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::kpi",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::setup",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::test",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/StorageProxyController.php::App\\Http\\Controllers\\Api\\StorageProxyController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\StorageProxyController@show",
        "expected_test_path": "tests/Feature/StorageProxyControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/StoreController.php::App\\Http\\Controllers\\Api\\StoreController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\StoreController@index",
        "expected_test_path": "tests/Feature/StoreControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade",
        "expected_test_path": "tests/Feature/SubscriptionChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyUpgrade",
        "expected_test_path": "tests/Feature/SubscriptionChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::previewDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade",
        "expected_test_path": "tests/Feature/SubscriptionChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::previewUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewUpgrade",
        "expected_test_path": "tests/Feature/SubscriptionChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyDowngrade",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyUpgrade",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::downgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@downgrade",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::listPublicPlanVersions",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@listPublicPlanVersions",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::upgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@upgrade",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionStartController.php::App\\Http\\Controllers\\Api\\SubscriptionStartController::start",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionStartController@start",
        "expected_test_path": "tests/Feature/SubscriptionStartControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::addAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@addAttachment",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::addWatcher",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@addWatcher",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@approve",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@complete",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::deleteAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@deleteAttachment",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@destroy",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@index",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::listAttachments",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listAttachments",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::listWatchers",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listWatchers",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@reject",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::removeWatcher",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@removeWatcher",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@show",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@status",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@store",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@update",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskMetricsController.php::App\\Http\\Controllers\\Api\\TaskMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskMetricsController@index",
        "expected_test_path": "tests/Feature/TaskMetricsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskPrefillController.php::App\\Http\\Controllers\\Api\\TaskPrefillController::getPrefill",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskPrefillController@getPrefill",
        "expected_test_path": "tests/Feature/TaskPrefillControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@destroy",
        "expected_test_path": "tests/Feature/TaskWatcherControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@index",
        "expected_test_path": "tests/Feature/TaskWatcherControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@store",
        "expected_test_path": "tests/Feature/TaskWatcherControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@destroy",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@index",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@show",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@store",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@update",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@approve",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::assign",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@assign",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@index",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@reject",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@store",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@update",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::updateStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@updateStatus",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TransactionController.php::App\\Http\\Controllers\\Api\\TransactionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TransactionController@index",
        "expected_test_path": "tests/Feature/TransactionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/TransactionsHelpController.php::App\\Http\\Controllers\\Api\\TransactionsHelpController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\TransactionsHelpController@send",
        "expected_test_path": "tests/Feature/TransactionsHelpControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UploadController.php::App\\Http\\Controllers\\Api\\UploadController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\UploadController@store",
        "expected_test_path": "tests/Feature/UploadControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@destroy",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@index",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@show",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@store",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@update",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/UserDetachController.php::App\\Http\\Controllers\\Api\\UserDetachController::detach",
        "fqmn": "App\\Http\\Controllers\\Api\\UserDetachController@detach",
        "expected_test_path": "tests/Feature/UserDetachControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@destroy",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@index",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@show",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@store",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@update",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create",
        "expected_test_path": "tests/Feature/AuthenticatedSessionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy",
        "expected_test_path": "tests/Feature/AuthenticatedSessionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@store",
        "expected_test_path": "tests/Feature/AuthenticatedSessionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/ConfirmablePasswordController.php::App\\Http\\Controllers\\Auth\\ConfirmablePasswordController::show",
        "fqmn": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@show",
        "expected_test_path": "tests/Feature/ConfirmablePasswordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/ConfirmablePasswordController.php::App\\Http\\Controllers\\Auth\\ConfirmablePasswordController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@store",
        "expected_test_path": "tests/Feature/ConfirmablePasswordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/EmailVerificationNotificationController.php::App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store",
        "expected_test_path": "tests/Feature/EmailVerificationNotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/EmailVerificationPromptController.php::App\\Http\\Controllers\\Auth\\EmailVerificationPromptController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "expected_test_path": "tests/Feature/EmailVerificationPromptControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/NewPasswordController.php::App\\Http\\Controllers\\Auth\\NewPasswordController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\NewPasswordController@create",
        "expected_test_path": "tests/Feature/NewPasswordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/NewPasswordController.php::App\\Http\\Controllers\\Auth\\NewPasswordController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\NewPasswordController@store",
        "expected_test_path": "tests/Feature/NewPasswordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/PasswordController.php::App\\Http\\Controllers\\Auth\\PasswordController::update",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordController@update",
        "expected_test_path": "tests/Feature/PasswordControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/PasswordResetLinkController.php::App\\Http\\Controllers\\Auth\\PasswordResetLinkController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create",
        "expected_test_path": "tests/Feature/PasswordResetLinkControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/PasswordResetLinkController.php::App\\Http\\Controllers\\Auth\\PasswordResetLinkController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@store",
        "expected_test_path": "tests/Feature/PasswordResetLinkControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/PublicVerifyEmailController.php::App\\Http\\Controllers\\Auth\\PublicVerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "expected_test_path": "tests/Feature/PublicVerifyEmailControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/RegisteredUserController.php::App\\Http\\Controllers\\Auth\\RegisteredUserController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "expected_test_path": "tests/Feature/RegisteredUserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/RegisteredUserController.php::App\\Http\\Controllers\\Auth\\RegisteredUserController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@store",
        "expected_test_path": "tests/Feature/RegisteredUserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Auth/VerifyEmailController.php::App\\Http\\Controllers\\Auth\\VerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerifyEmailController@__invoke",
        "expected_test_path": "tests/Feature/VerifyEmailControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/BackorderCancelController.php::App\\Http\\Controllers\\BackorderCancelController::cancel",
        "fqmn": "App\\Http\\Controllers\\BackorderCancelController@cancel",
        "expected_test_path": "tests/Feature/BackorderCancelControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Billing/UpdateCardMagicLinkController.php::App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "expected_test_path": "tests/Feature/UpdateCardMagicLinkControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::add",
        "fqmn": "App\\Http\\Controllers\\CartController@add",
        "expected_test_path": "tests/Feature/CartControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::index",
        "fqmn": "App\\Http\\Controllers\\CartController@index",
        "expected_test_path": "tests/Feature/CartControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::remove",
        "fqmn": "App\\Http\\Controllers\\CartController@remove",
        "expected_test_path": "tests/Feature/CartControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::update",
        "fqmn": "App\\Http\\Controllers\\CartController@update",
        "expected_test_path": "tests/Feature/CartControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ContactController.php::App\\Http\\Controllers\\ContactController::store",
        "fqmn": "App\\Http\\Controllers\\ContactController@store",
        "expected_test_path": "tests/Feature/ContactControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Dev/SubscriptionDryRunController.php::App\\Http\\Controllers\\Dev\\SubscriptionDryRunController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Dev\\SubscriptionDryRunController@__invoke",
        "expected_test_path": "tests/Feature/SubscriptionDryRunControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::feedback",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@feedback",
        "expected_test_path": "tests/Feature/DigestFeedbackControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::track",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@track",
        "expected_test_path": "tests/Feature/DigestFeedbackControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::unsubscribe",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@unsubscribe",
        "expected_test_path": "tests/Feature/DigestFeedbackControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employee/RewardsReceiptController.php::App\\Http\\Controllers\\Employee\\RewardsReceiptController::download",
        "fqmn": "App\\Http\\Controllers\\Employee\\RewardsReceiptController@download",
        "expected_test_path": "tests/Feature/RewardsReceiptControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::activate",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@activate",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::pause",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@pause",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRaisePolicy",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRaiseTemplates",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRewardsPolicy",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardsPolicy",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRewardTemplates",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardTemplates",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::cancelSeatSchedule",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@cancelSeatSchedule",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::cancelSubscriptionAtPeriodEnd",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::purchaseSeats",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@purchaseSeats",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::purchaseSeatsSuccess",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@purchaseSeatsSuccess",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::resumeSubscription",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@resumeSubscription",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::scheduleSeatReduction",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@scheduleSeatReduction",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomExportController.php::App\\Http\\Controllers\\Employer\\ControlRoomExportController::downloadJson",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadJson",
        "expected_test_path": "tests/Feature/ControlRoomExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomExportController.php::App\\Http\\Controllers\\Employer\\ControlRoomExportController::downloadPdf",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadPdf",
        "expected_test_path": "tests/Feature/ControlRoomExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomInvestigationController.php::App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController::show",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController@show",
        "expected_test_path": "tests/Feature/ControlRoomInvestigationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/HireReadinessPdfController.php::App\\Http\\Controllers\\Employer\\HireReadinessPdfController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\HireReadinessPdfController@export",
        "expected_test_path": "tests/Feature/HireReadinessPdfControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/KpiExportController.php::App\\Http\\Controllers\\Employer\\KpiExportController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\KpiExportController@export",
        "expected_test_path": "tests/Feature/KpiExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/KpiExportController.php::App\\Http\\Controllers\\Employer\\KpiExportController::recompute",
        "fqmn": "App\\Http\\Controllers\\Employer\\KpiExportController@recompute",
        "expected_test_path": "tests/Feature/KpiExportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/OAuthEmailController.php::App\\Http\\Controllers\\Employer\\OAuthEmailController::callback",
        "fqmn": "App\\Http\\Controllers\\Employer\\OAuthEmailController@callback",
        "expected_test_path": "tests/Feature/OAuthEmailControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/OAuthEmailController.php::App\\Http\\Controllers\\Employer\\OAuthEmailController::connect",
        "fqmn": "App\\Http\\Controllers\\Employer\\OAuthEmailController@connect",
        "expected_test_path": "tests/Feature/OAuthEmailControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::oneClickUpgrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@oneClickUpgrade",
        "expected_test_path": "tests/Feature/PlanCheckoutControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::purchasePlan",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@purchasePlan",
        "expected_test_path": "tests/Feature/PlanCheckoutControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::success",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@success",
        "expected_test_path": "tests/Feature/PlanCheckoutControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/RewardsStatementController.php::App\\Http\\Controllers\\Employer\\RewardsStatementController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\RewardsStatementController@export",
        "expected_test_path": "tests/Feature/RewardsStatementControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/SubscriptionController.php::App\\Http\\Controllers\\Employer\\SubscriptionController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Employer/SubscriptionController.php::App\\Http\\Controllers\\Employer\\SubscriptionController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyUpgrade",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::destroy",
        "fqmn": "App\\Http\\Controllers\\GroupController@destroy",
        "expected_test_path": "tests/Feature/GroupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::store",
        "fqmn": "App\\Http\\Controllers\\GroupController@store",
        "expected_test_path": "tests/Feature/GroupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::update",
        "fqmn": "App\\Http\\Controllers\\GroupController@update",
        "expected_test_path": "tests/Feature/GroupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::connect",
        "fqmn": "App\\Http\\Controllers\\HelpController@connect",
        "expected_test_path": "tests/Feature/HelpControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::dmTest",
        "fqmn": "App\\Http\\Controllers\\HelpController@dmTest",
        "expected_test_path": "tests/Feature/HelpControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::health",
        "fqmn": "App\\Http\\Controllers\\HelpController@health",
        "expected_test_path": "tests/Feature/HelpControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/HomeController.php::App\\Http\\Controllers\\HomeController::home",
        "fqmn": "App\\Http\\Controllers\\HomeController@home",
        "expected_test_path": "tests/Feature/HomeControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportController.php::App\\Http\\Controllers\\ImportController::autocorrect",
        "fqmn": "App\\Http\\Controllers\\ImportController@autocorrect",
        "expected_test_path": "tests/Feature/ImportControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::apply",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@apply",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::download",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@download",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::dryRun",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@dryRun",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::index",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@index",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::preview",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@preview",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::status",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@status",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/Integrations/OtoWebhookController.php::App\\Http\\Controllers\\Integrations\\OtoWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Integrations\\OtoWebhookController@handle",
        "expected_test_path": "tests/Feature/OtoWebhookControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/LandingController.php::App\\Http\\Controllers\\LandingController::__invoke",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "expected_test_path": "tests/Feature/LandingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/LandingController.php::App\\Http\\Controllers\\LandingController::index",
        "fqmn": "App\\Http\\Controllers\\LandingController@index",
        "expected_test_path": "tests/Feature/LandingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::byGroup",
        "fqmn": "App\\Http\\Controllers\\MessageController@byGroup",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::byUser",
        "fqmn": "App\\Http\\Controllers\\MessageController@byUser",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::destroy",
        "fqmn": "App\\Http\\Controllers\\MessageController@destroy",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::loadOlder",
        "fqmn": "App\\Http\\Controllers\\MessageController@loadOlder",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::markRead",
        "fqmn": "App\\Http\\Controllers\\MessageController@markRead",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::react",
        "fqmn": "App\\Http\\Controllers\\MessageController@react",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::showAttachment",
        "fqmn": "App\\Http\\Controllers\\MessageController@showAttachment",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::store",
        "fqmn": "App\\Http\\Controllers\\MessageController@store",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/NotificationController.php::App\\Http\\Controllers\\NotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAllAsRead",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/NotificationController.php::App\\Http\\Controllers\\NotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAsRead",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/OrdersController.php::App\\Http\\Controllers\\OrdersController::index",
        "fqmn": "App\\Http\\Controllers\\OrdersController@index",
        "expected_test_path": "tests/Feature/OrdersControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/OrdersController.php::App\\Http\\Controllers\\OrdersController::show",
        "fqmn": "App\\Http\\Controllers\\OrdersController@show",
        "expected_test_path": "tests/Feature/OrdersControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::destroy",
        "fqmn": "App\\Http\\Controllers\\ProfileController@destroy",
        "expected_test_path": "tests/Feature/ProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::edit",
        "fqmn": "App\\Http\\Controllers\\ProfileController@edit",
        "expected_test_path": "tests/Feature/ProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::update",
        "fqmn": "App\\Http\\Controllers\\ProfileController@update",
        "expected_test_path": "tests/Feature/ProfileControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::addComment",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addComment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::addReaction",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addReaction",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::colleagues",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@colleagues",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::create",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@create",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@index",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::removeReaction",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@removeReaction",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::show",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@show",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::stats",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@stats",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@store",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::form",
        "fqmn": "App\\Http\\Controllers\\RfqController@form",
        "expected_test_path": "tests/Feature/RfqControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::pdf",
        "fqmn": "App\\Http\\Controllers\\RfqController@pdf",
        "expected_test_path": "tests/Feature/RfqControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::submit",
        "fqmn": "App\\Http\\Controllers\\RfqController@submit",
        "expected_test_path": "tests/Feature/RfqControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::thankyou",
        "fqmn": "App\\Http\\Controllers\\RfqController@thankyou",
        "expected_test_path": "tests/Feature/RfqControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SecureOrderPdfController.php::App\\Http\\Controllers\\SecureOrderPdfController::planInvoicePdf",
        "fqmn": "App\\Http\\Controllers\\SecureOrderPdfController@planInvoicePdf",
        "expected_test_path": "tests/Feature/SecureOrderPdfControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/StorefrontController.php::App\\Http\\Controllers\\StorefrontController::index",
        "fqmn": "App\\Http\\Controllers\\StorefrontController@index",
        "expected_test_path": "tests/Feature/StorefrontControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/StorefrontController.php::App\\Http\\Controllers\\StorefrontController::show",
        "fqmn": "App\\Http\\Controllers\\StorefrontController@show",
        "expected_test_path": "tests/Feature/StorefrontControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::billing",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@billing",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::cancel",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@cancel",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::checkout",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@checkout",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::confirm",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@confirm",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::plan",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@plan",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::portal",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@portal",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::subscribe",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@subscribe",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SuccessionDossierController.php::App\\Http\\Controllers\\SuccessionDossierController::seal",
        "fqmn": "App\\Http\\Controllers\\SuccessionDossierController@seal",
        "expected_test_path": "tests/Feature/SuccessionDossierControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/SuccessionDossierController.php::App\\Http\\Controllers\\SuccessionDossierController::updateMilestone",
        "fqmn": "App\\Http\\Controllers\\SuccessionDossierController@updateMilestone",
        "expected_test_path": "tests/Feature/SuccessionDossierControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::blockUnblock",
        "fqmn": "App\\Http\\Controllers\\UserController@blockUnblock",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::changeRole",
        "fqmn": "App\\Http\\Controllers\\UserController@changeRole",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::lookupUlid",
        "fqmn": "App\\Http\\Controllers\\UserController@lookupUlid",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::store",
        "fqmn": "App\\Http\\Controllers\\UserController@store",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/AssignTaskRequest.php::App\\Http\\Requests\\AssignTaskRequest::authorize",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "expected_test_path": "tests/Feature/AssignTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/AssignTaskRequest.php::App\\Http\\Requests\\AssignTaskRequest::messages",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@messages",
        "expected_test_path": "tests/Feature/AssignTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/AssignTaskRequest.php::App\\Http\\Requests\\AssignTaskRequest::rules",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@rules",
        "expected_test_path": "tests/Feature/AssignTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/AssignTaskRequest.php::App\\Http\\Requests\\AssignTaskRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@withValidator",
        "expected_test_path": "tests/Feature/AssignTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@authorize",
        "expected_test_path": "tests/Feature/LoginRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::ensureIsNotRateLimited",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@ensureIsNotRateLimited",
        "expected_test_path": "tests/Feature/LoginRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@rules",
        "expected_test_path": "tests/Feature/LoginRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::throttleKey",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@throttleKey",
        "expected_test_path": "tests/Feature/LoginRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@authorize",
        "expected_test_path": "tests/Feature/StoreDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::messages",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@messages",
        "expected_test_path": "tests/Feature/StoreDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::rules",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@rules",
        "expected_test_path": "tests/Feature/StoreDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::validatedWithDefaults",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "expected_test_path": "tests/Feature/StoreDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::messages",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@messages",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::rules",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@rules",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedFrom",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedPeriod",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedScope",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedScope",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedTo",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedTo",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validationData",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validationData",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/ProfileUpdateRequest.php::App\\Http\\Requests\\ProfileUpdateRequest::rules",
        "fqmn": "App\\Http\\Requests\\ProfileUpdateRequest@rules",
        "expected_test_path": "tests/Feature/ProfileUpdateRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreGroupRequest.php::App\\Http\\Requests\\StoreGroupRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreGroupRequest@authorize",
        "expected_test_path": "tests/Feature/StoreGroupRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreGroupRequest.php::App\\Http\\Requests\\StoreGroupRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreGroupRequest@rules",
        "expected_test_path": "tests/Feature/StoreGroupRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreGroupRequest.php::App\\Http\\Requests\\StoreGroupRequest::validated",
        "fqmn": "App\\Http\\Requests\\StoreGroupRequest@validated",
        "expected_test_path": "tests/Feature/StoreGroupRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreMessageRequest.php::App\\Http\\Requests\\StoreMessageRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreMessageRequest@authorize",
        "expected_test_path": "tests/Feature/StoreMessageRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreMessageRequest.php::App\\Http\\Requests\\StoreMessageRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreMessageRequest@rules",
        "expected_test_path": "tests/Feature/StoreMessageRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreRecognitionRequest.php::App\\Http\\Requests\\StoreRecognitionRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreRecognitionRequest@authorize",
        "expected_test_path": "tests/Feature/StoreRecognitionRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreRecognitionRequest.php::App\\Http\\Requests\\StoreRecognitionRequest::messages",
        "fqmn": "App\\Http\\Requests\\StoreRecognitionRequest@messages",
        "expected_test_path": "tests/Feature/StoreRecognitionRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreRecognitionRequest.php::App\\Http\\Requests\\StoreRecognitionRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreRecognitionRequest@rules",
        "expected_test_path": "tests/Feature/StoreRecognitionRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreTaskForDocumentRequest.php::App\\Http\\Requests\\StoreTaskForDocumentRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreTaskForDocumentRequest@authorize",
        "expected_test_path": "tests/Feature/StoreTaskForDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreTaskForDocumentRequest.php::App\\Http\\Requests\\StoreTaskForDocumentRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreTaskForDocumentRequest@rules",
        "expected_test_path": "tests/Feature/StoreTaskForDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreTaskRequest.php::App\\Http\\Requests\\StoreTaskRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@authorize",
        "expected_test_path": "tests/Feature/StoreTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreTaskRequest.php::App\\Http\\Requests\\StoreTaskRequest::messages",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@messages",
        "expected_test_path": "tests/Feature/StoreTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/StoreTaskRequest.php::App\\Http\\Requests\\StoreTaskRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@rules",
        "expected_test_path": "tests/Feature/StoreTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateGroupRequest.php::App\\Http\\Requests\\UpdateGroupRequest::authorize",
        "fqmn": "App\\Http\\Requests\\UpdateGroupRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateGroupRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateGroupRequest.php::App\\Http\\Requests\\UpdateGroupRequest::rules",
        "fqmn": "App\\Http\\Requests\\UpdateGroupRequest@rules",
        "expected_test_path": "tests/Feature/UpdateGroupRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskForDocumentRequest.php::App\\Http\\Requests\\UpdateTaskForDocumentRequest::authorize",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateTaskForDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskForDocumentRequest.php::App\\Http\\Requests\\UpdateTaskForDocumentRequest::messages",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@messages",
        "expected_test_path": "tests/Feature/UpdateTaskForDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskForDocumentRequest.php::App\\Http\\Requests\\UpdateTaskForDocumentRequest::rules",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@rules",
        "expected_test_path": "tests/Feature/UpdateTaskForDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskForDocumentRequest.php::App\\Http\\Requests\\UpdateTaskForDocumentRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@withValidator",
        "expected_test_path": "tests/Feature/UpdateTaskForDocumentRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskRequest.php::App\\Http\\Requests\\UpdateTaskRequest::authorize",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskRequest.php::App\\Http\\Requests\\UpdateTaskRequest::messages",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@messages",
        "expected_test_path": "tests/Feature/UpdateTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskRequest.php::App\\Http\\Requests\\UpdateTaskRequest::rules",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@rules",
        "expected_test_path": "tests/Feature/UpdateTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskRequest.php::App\\Http\\Requests\\UpdateTaskRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@withValidator",
        "expected_test_path": "tests/Feature/UpdateTaskRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskStatusRequest.php::App\\Http\\Requests\\UpdateTaskStatusRequest::authorize",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateTaskStatusRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskStatusRequest.php::App\\Http\\Requests\\UpdateTaskStatusRequest::messages",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@messages",
        "expected_test_path": "tests/Feature/UpdateTaskStatusRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskStatusRequest.php::App\\Http\\Requests\\UpdateTaskStatusRequest::rules",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@rules",
        "expected_test_path": "tests/Feature/UpdateTaskStatusRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Requests/UpdateTaskStatusRequest.php::App\\Http\\Requests\\UpdateTaskStatusRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@withValidator",
        "expected_test_path": "tests/Feature/UpdateTaskStatusRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/GroupResource.php::App\\Http\\Resources\\GroupResource::toArray",
        "fqmn": "App\\Http\\Resources\\GroupResource@toArray",
        "expected_test_path": "tests/Feature/GroupResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/MessageAttachmentResource.php::App\\Http\\Resources\\MessageAttachmentResource::toArray",
        "fqmn": "App\\Http\\Resources\\MessageAttachmentResource@toArray",
        "expected_test_path": "tests/Feature/MessageAttachmentResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/MessageResource.php::App\\Http\\Resources\\MessageResource::toArray",
        "fqmn": "App\\Http\\Resources\\MessageResource@toArray",
        "expected_test_path": "tests/Feature/MessageResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/TaskResource.php::App\\Http\\Resources\\TaskResource::toArray",
        "fqmn": "App\\Http\\Resources\\TaskResource@toArray",
        "expected_test_path": "tests/Feature/TaskResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Http/Resources/UserResource.php::App\\Http\\Resources\\UserResource::toArray",
        "fqmn": "App\\Http\\Resources\\UserResource@toArray",
        "expected_test_path": "tests/Feature/UserResourceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/AutoCorrectUsersImport.php::App\\Jobs\\AutoCorrectUsersImport::handle",
        "fqmn": "App\\Jobs\\AutoCorrectUsersImport@handle",
        "expected_test_path": "tests/Feature/AutoCorrectUsersImportTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Billing/RecordGatewayFeeJob.php::App\\Jobs\\Billing\\RecordGatewayFeeJob::middleware",
        "fqmn": "App\\Jobs\\Billing\\RecordGatewayFeeJob@middleware",
        "expected_test_path": "tests/Feature/RecordGatewayFeeJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/BroadcastRecognitionCreated.php::App\\Jobs\\BroadcastRecognitionCreated::handle",
        "fqmn": "App\\Jobs\\BroadcastRecognitionCreated@handle",
        "expected_test_path": "tests/Feature/BroadcastRecognitionCreatedTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/ComputeCompanyMetricsRun.php::App\\Jobs\\ComputeCompanyMetricsRun::uniqueId",
        "fqmn": "App\\Jobs\\ComputeCompanyMetricsRun@uniqueId",
        "expected_test_path": "tests/Feature/ComputeCompanyMetricsRunTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/ComputeControlRoomAiSummary.php::App\\Jobs\\ComputeControlRoomAiSummary::handle",
        "fqmn": "App\\Jobs\\ComputeControlRoomAiSummary@handle",
        "expected_test_path": "tests/Feature/ComputeControlRoomAiSummaryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoBillForOrderSupplier.php::App\\Jobs\\CreateZohoBillForOrderSupplier::handle",
        "fqmn": "App\\Jobs\\CreateZohoBillForOrderSupplier@handle",
        "expected_test_path": "tests/Feature/CreateZohoBillForOrderSupplierTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoBillForOrderSupplier.php::App\\Jobs\\CreateZohoBillForOrderSupplier::middleware",
        "fqmn": "App\\Jobs\\CreateZohoBillForOrderSupplier@middleware",
        "expected_test_path": "tests/Feature/CreateZohoBillForOrderSupplierTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoInvoiceForOrder.php::App\\Jobs\\CreateZohoInvoiceForOrder::handle",
        "fqmn": "App\\Jobs\\CreateZohoInvoiceForOrder@handle",
        "expected_test_path": "tests/Feature/CreateZohoInvoiceForOrderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoInvoiceForOrder.php::App\\Jobs\\CreateZohoInvoiceForOrder::middleware",
        "fqmn": "App\\Jobs\\CreateZohoInvoiceForOrder@middleware",
        "expected_test_path": "tests/Feature/CreateZohoInvoiceForOrderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoPurchaseOrdersForOrder.php::App\\Jobs\\CreateZohoPurchaseOrdersForOrder::handle",
        "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@handle",
        "expected_test_path": "tests/Feature/CreateZohoPurchaseOrdersForOrderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/CreateZohoPurchaseOrdersForOrder.php::App\\Jobs\\CreateZohoPurchaseOrdersForOrder::middleware",
        "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@middleware",
        "expected_test_path": "tests/Feature/CreateZohoPurchaseOrdersForOrderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/EnsureOrderZohoAdvance.php::App\\Jobs\\EnsureOrderZohoAdvance::handle",
        "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@handle",
        "expected_test_path": "tests/Feature/EnsureOrderZohoAdvanceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/EnsureOrderZohoAdvance.php::App\\Jobs\\EnsureOrderZohoAdvance::middleware",
        "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@middleware",
        "expected_test_path": "tests/Feature/EnsureOrderZohoAdvanceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/GenerateHelpBotReply.php::App\\Jobs\\GenerateHelpBotReply::handle",
        "fqmn": "App\\Jobs\\GenerateHelpBotReply@handle",
        "expected_test_path": "tests/Feature/GenerateHelpBotReplyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::cacheKey",
        "fqmn": "App\\Jobs\\GenerateReferralInsights@cacheKey",
        "expected_test_path": "tests/Feature/GenerateReferralInsightsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::handle",
        "fqmn": "App\\Jobs\\GenerateReferralInsights@handle",
        "expected_test_path": "tests/Feature/GenerateReferralInsightsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Middleware/EnsureFeature.php::App\\Jobs\\Middleware\\EnsureFeature::handle",
        "fqmn": "App\\Jobs\\Middleware\\EnsureFeature@handle",
        "expected_test_path": "tests/Feature/EnsureFeatureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/PostShippingExpenseToZoho.php::App\\Jobs\\PostShippingExpenseToZoho::handle",
        "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@handle",
        "expected_test_path": "tests/Feature/PostShippingExpenseToZohoTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/PostShippingExpenseToZoho.php::App\\Jobs\\PostShippingExpenseToZoho::middleware",
        "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@middleware",
        "expected_test_path": "tests/Feature/PostShippingExpenseToZohoTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/PrefetchPlanInvoice.php::App\\Jobs\\PrefetchPlanInvoice::handle",
        "fqmn": "App\\Jobs\\PrefetchPlanInvoice@handle",
        "expected_test_path": "tests/Feature/PrefetchPlanInvoiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/PrefetchPlanInvoice.php::App\\Jobs\\PrefetchPlanInvoice::middleware",
        "fqmn": "App\\Jobs\\PrefetchPlanInvoice@middleware",
        "expected_test_path": "tests/Feature/PrefetchPlanInvoiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/PrefetchWalletReceipt.php::App\\Jobs\\PrefetchWalletReceipt::handle",
        "fqmn": "App\\Jobs\\PrefetchWalletReceipt@handle",
        "expected_test_path": "tests/Feature/PrefetchWalletReceiptTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/PrefetchWalletReceipt.php::App\\Jobs\\PrefetchWalletReceipt::middleware",
        "fqmn": "App\\Jobs\\PrefetchWalletReceipt@middleware",
        "expected_test_path": "tests/Feature/PrefetchWalletReceiptTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Promotion/SendCycleClosingReminders.php::App\\Jobs\\Promotion\\SendCycleClosingReminders::handle",
        "fqmn": "App\\Jobs\\Promotion\\SendCycleClosingReminders@handle",
        "expected_test_path": "tests/Feature/SendCycleClosingRemindersTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/RecordOtoTopUpInZoho.php::App\\Jobs\\RecordOtoTopUpInZoho::handle",
        "fqmn": "App\\Jobs\\RecordOtoTopUpInZoho@handle",
        "expected_test_path": "tests/Feature/RecordOtoTopUpInZohoTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/RecordOtoTopUpInZoho.php::App\\Jobs\\RecordOtoTopUpInZoho::middleware",
        "fqmn": "App\\Jobs\\RecordOtoTopUpInZoho@middleware",
        "expected_test_path": "tests/Feature/RecordOtoTopUpInZohoTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/SeedGuidedCompanyValues.php::App\\Jobs\\SeedGuidedCompanyValues::handle",
        "fqmn": "App\\Jobs\\SeedGuidedCompanyValues@handle",
        "expected_test_path": "tests/Feature/SeedGuidedCompanyValuesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/SendOrderCompletionNotification.php::App\\Jobs\\SendOrderCompletionNotification::handle",
        "fqmn": "App\\Jobs\\SendOrderCompletionNotification@handle",
        "expected_test_path": "tests/Feature/SendOrderCompletionNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::handle",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@handle",
        "expected_test_path": "tests/Feature/GenerateStarterKpisForUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::progressCacheKey",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@progressCacheKey",
        "expected_test_path": "tests/Feature/GenerateStarterKpisForUserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Subscriptions/AutoChargeSubscriptionsJob.php::App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob::middleware",
        "fqmn": "App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob@middleware",
        "expected_test_path": "tests/Feature/AutoChargeSubscriptionsJobTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Succession/GenerateSuccessionCurriculum.php::App\\Jobs\\Succession\\GenerateSuccessionCurriculum::failed",
        "fqmn": "App\\Jobs\\Succession\\GenerateSuccessionCurriculum@failed",
        "expected_test_path": "tests/Feature/GenerateSuccessionCurriculumTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/Succession/GenerateSuccessionCurriculum.php::App\\Jobs\\Succession\\GenerateSuccessionCurriculum::handle",
        "fqmn": "App\\Jobs\\Succession\\GenerateSuccessionCurriculum@handle",
        "expected_test_path": "tests/Feature/GenerateSuccessionCurriculumTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/SyncProductToZoho.php::App\\Jobs\\SyncProductToZoho::handle",
        "fqmn": "App\\Jobs\\SyncProductToZoho@handle",
        "expected_test_path": "tests/Feature/SyncProductToZohoTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/SyncProductToZoho.php::App\\Jobs\\SyncProductToZoho::middleware",
        "fqmn": "App\\Jobs\\SyncProductToZoho@middleware",
        "expected_test_path": "tests/Feature/SyncProductToZohoTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/UploadZohoBillAttachment.php::App\\Jobs\\UploadZohoBillAttachment::handle",
        "fqmn": "App\\Jobs\\UploadZohoBillAttachment@handle",
        "expected_test_path": "tests/Feature/UploadZohoBillAttachmentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Jobs/UploadZohoBillAttachment.php::App\\Jobs\\UploadZohoBillAttachment::middleware",
        "fqmn": "App\\Jobs\\UploadZohoBillAttachment@middleware",
        "expected_test_path": "tests/Feature/UploadZohoBillAttachmentTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/AlertOpsOnChargebackCreated.php::App\\Listeners\\AlertOpsOnChargebackCreated::handle",
        "fqmn": "App\\Listeners\\AlertOpsOnChargebackCreated@handle",
        "expected_test_path": "tests/Feature/AlertOpsOnChargebackCreatedTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/AlertOpsOnDisputeCreated.php::App\\Listeners\\AlertOpsOnDisputeCreated::handle",
        "fqmn": "App\\Listeners\\AlertOpsOnDisputeCreated@handle",
        "expected_test_path": "tests/Feature/AlertOpsOnDisputeCreatedTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastAs",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastAs",
        "expected_test_path": "tests/Feature/BroadcastDatabaseNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastOn",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastOn",
        "expected_test_path": "tests/Feature/BroadcastDatabaseNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastWith",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastWith",
        "expected_test_path": "tests/Feature/BroadcastDatabaseNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::handle",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@handle",
        "expected_test_path": "tests/Feature/BroadcastDatabaseNotificationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleApproved",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleApproved",
        "expected_test_path": "tests/Feature/DispatchHireWebhooksTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleCheckpointCompleted",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleCheckpointCompleted",
        "expected_test_path": "tests/Feature/DispatchHireWebhooksTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleRejected",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleRejected",
        "expected_test_path": "tests/Feature/DispatchHireWebhooksTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/EnforceHighWaterMark.php::App\\Listeners\\EnforceHighWaterMark::recordSeatAddition",
        "fqmn": "App\\Listeners\\EnforceHighWaterMark@recordSeatAddition",
        "expected_test_path": "tests/Feature/EnforceHighWaterMarkTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/Rewards/FreezePointsOnCompanyCancellation.php::App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation::handle",
        "fqmn": "App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation@handle",
        "expected_test_path": "tests/Feature/FreezePointsOnCompanyCancellationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Listeners/SuspendAutoChargeOnDispute.php::App\\Listeners\\SuspendAutoChargeOnDispute::handle",
        "fqmn": "App\\Listeners\\SuspendAutoChargeOnDispute@handle",
        "expected_test_path": "tests/Feature/SuspendAutoChargeOnDisputeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/Group.php::App\\Models\\Group::updateGroupWithMessage",
        "fqmn": "App\\Models\\Group@updateGroupWithMessage",
        "expected_test_path": "tests/Unit/GroupTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::approvals",
        "fqmn": "App\\Models\\HireRequest@approvals",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::company",
        "fqmn": "App\\Models\\HireRequest@company",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::isOpen",
        "fqmn": "App\\Models\\HireRequest@isOpen",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::isReplacement",
        "fqmn": "App\\Models\\HireRequest@isReplacement",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::jdLines",
        "fqmn": "App\\Models\\HireRequest@jdLines",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::jobPosting",
        "fqmn": "App\\Models\\HireRequest@jobPosting",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::outcomeCheckpoints",
        "fqmn": "App\\Models\\HireRequest@outcomeCheckpoints",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::rejectedBy",
        "fqmn": "App\\Models\\HireRequest@rejectedBy",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::replacementUser",
        "fqmn": "App\\Models\\HireRequest@replacementUser",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::report",
        "fqmn": "App\\Models\\HireRequest@report",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::requester",
        "fqmn": "App\\Models\\HireRequest@requester",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::targetDepartment",
        "fqmn": "App\\Models\\HireRequest@targetDepartment",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::targetTeam",
        "fqmn": "App\\Models\\HireRequest@targetTeam",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/NotificationSetting.php::App\\Models\\NotificationSetting::forCompany",
        "fqmn": "App\\Models\\NotificationSetting@forCompany",
        "expected_test_path": "tests/Unit/NotificationSettingTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/Occasions/OccasionEmailConfig.php::App\\Models\\Occasions\\OccasionEmailConfig::getOrCreateForCompany",
        "fqmn": "App\\Models\\Occasions\\OccasionEmailConfig@getOrCreateForCompany",
        "expected_test_path": "tests/Unit/OccasionEmailConfigTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/Order.php::App\\Models\\Order::derivePrimaryMethod",
        "fqmn": "App\\Models\\Order@derivePrimaryMethod",
        "expected_test_path": "tests/Unit/OrderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/Order.php::App\\Models\\Order::generateNextNumber",
        "fqmn": "App\\Models\\Order@generateNextNumber",
        "expected_test_path": "tests/Unit/OrderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/Promotion/SalaryBand.php::App\\Models\\Promotion\\SalaryBand::findCurrentBand",
        "fqmn": "App\\Models\\Promotion\\SalaryBand@findCurrentBand",
        "expected_test_path": "tests/Unit/SalaryBandTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/Rfq.php::App\\Models\\Rfq::generateNumber",
        "fqmn": "App\\Models\\Rfq@generateNumber",
        "expected_test_path": "tests/Unit/RfqTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/Task.php::App\\Models\\Task::target",
        "fqmn": "App\\Models\\Task@target",
        "expected_test_path": "tests/Unit/TaskTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/User.php::App\\Models\\User::companies",
        "fqmn": "App\\Models\\User@companies",
        "expected_test_path": "tests/Unit/UserTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/ZohoModifiedSinceCursorState.php::App\\Models\\ZohoModifiedSinceCursorState::advanceTo",
        "fqmn": "App\\Models\\ZohoModifiedSinceCursorState@advanceTo",
        "expected_test_path": "tests/Unit/ZohoModifiedSinceCursorStateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Models/ZohoModifiedSinceCursorState.php::App\\Models\\ZohoModifiedSinceCursorState::current",
        "fqmn": "App\\Models\\ZohoModifiedSinceCursorState@current",
        "expected_test_path": "tests/Unit/ZohoModifiedSinceCursorStateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::bulkAction",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::canViewAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@canViewAny",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::create",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::delete",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@delete",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::deleteAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@deleteAny",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::forceDelete",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@forceDelete",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::restore",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@restore",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::update",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@update",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::view",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@view",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::viewAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@viewAny",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/CompanyPolicy.php::App\\Policies\\CompanyPolicy::resumeDunning",
        "fqmn": "App\\Policies\\CompanyPolicy@resumeDunning",
        "expected_test_path": "tests/Unit/CompanyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::forceDelete",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/CompanySubscriptionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::reactivate",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@reactivate",
        "expected_test_path": "tests/Unit/CompanySubscriptionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::restore",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@restore",
        "expected_test_path": "tests/Unit/CompanySubscriptionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::revoke",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@revoke",
        "expected_test_path": "tests/Unit/CompanySubscriptionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::canViewAny",
        "fqmn": "App\\Policies\\DeliveryPolicy@canViewAny",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::create",
        "fqmn": "App\\Policies\\DeliveryPolicy@create",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::delete",
        "fqmn": "App\\Policies\\DeliveryPolicy@delete",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::forceDelete",
        "fqmn": "App\\Policies\\DeliveryPolicy@forceDelete",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::restore",
        "fqmn": "App\\Policies\\DeliveryPolicy@restore",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::update",
        "fqmn": "App\\Policies\\DeliveryPolicy@update",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::view",
        "fqmn": "App\\Policies\\DeliveryPolicy@view",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::viewAny",
        "fqmn": "App\\Policies\\DeliveryPolicy@viewAny",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentActivityLogPolicy.php::App\\Policies\\DocumentActivityLogPolicy::view",
        "fqmn": "App\\Policies\\DocumentActivityLogPolicy@view",
        "expected_test_path": "tests/Unit/DocumentActivityLogPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentActivityLogPolicy.php::App\\Policies\\DocumentActivityLogPolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentActivityLogPolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentActivityLogPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentFieldPolicy.php::App\\Policies\\DocumentFieldPolicy::accept",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@accept",
        "expected_test_path": "tests/Unit/DocumentFieldPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentFieldPolicy.php::App\\Policies\\DocumentFieldPolicy::update",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@update",
        "expected_test_path": "tests/Unit/DocumentFieldPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentFieldPolicy.php::App\\Policies\\DocumentFieldPolicy::view",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@view",
        "expected_test_path": "tests/Unit/DocumentFieldPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::comment",
        "fqmn": "App\\Policies\\DocumentPolicy@comment",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::create",
        "fqmn": "App\\Policies\\DocumentPolicy@create",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::delete",
        "fqmn": "App\\Policies\\DocumentPolicy@delete",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::forceDelete",
        "fqmn": "App\\Policies\\DocumentPolicy@forceDelete",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::manageShares",
        "fqmn": "App\\Policies\\DocumentPolicy@manageShares",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::restore",
        "fqmn": "App\\Policies\\DocumentPolicy@restore",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::update",
        "fqmn": "App\\Policies\\DocumentPolicy@update",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::view",
        "fqmn": "App\\Policies\\DocumentPolicy@view",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentPolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::create",
        "fqmn": "App\\Policies\\DocumentSharePolicy@create",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::delete",
        "fqmn": "App\\Policies\\DocumentSharePolicy@delete",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::update",
        "fqmn": "App\\Policies\\DocumentSharePolicy@update",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::view",
        "fqmn": "App\\Policies\\DocumentSharePolicy@view",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentSharePolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::create",
        "fqmn": "App\\Policies\\DocumentTypePolicy@create",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::delete",
        "fqmn": "App\\Policies\\DocumentTypePolicy@delete",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::forceDelete",
        "fqmn": "App\\Policies\\DocumentTypePolicy@forceDelete",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::restore",
        "fqmn": "App\\Policies\\DocumentTypePolicy@restore",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::update",
        "fqmn": "App\\Policies\\DocumentTypePolicy@update",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::view",
        "fqmn": "App\\Policies\\DocumentTypePolicy@view",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentTypePolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::create",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@create",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::delete",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@delete",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::review",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@review",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::update",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@update",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::view",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@view",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::create",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@create",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::delete",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@delete",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::deleteAny",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@deleteAny",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::forceDelete",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@forceDelete",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::restore",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@restore",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::update",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@update",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::view",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@view",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::viewAny",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@viewAny",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::create",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@create",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::delete",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@delete",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::update",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@update",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::view",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@view",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::viewAny",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@viewAny",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::create",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@create",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::delete",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@delete",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::forceDelete",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::restore",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@restore",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::update",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@update",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::view",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@view",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::viewAny",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@viewAny",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::before",
        "fqmn": "App\\Policies\\JobPostingPolicy@before",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::create",
        "fqmn": "App\\Policies\\JobPostingPolicy@create",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::delete",
        "fqmn": "App\\Policies\\JobPostingPolicy@delete",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::update",
        "fqmn": "App\\Policies\\JobPostingPolicy@update",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::view",
        "fqmn": "App\\Policies\\JobPostingPolicy@view",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::viewAny",
        "fqmn": "App\\Policies\\JobPostingPolicy@viewAny",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::before",
        "fqmn": "App\\Policies\\JobReferralPolicy@before",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::create",
        "fqmn": "App\\Policies\\JobReferralPolicy@create",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::update",
        "fqmn": "App\\Policies\\JobReferralPolicy@update",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::view",
        "fqmn": "App\\Policies\\JobReferralPolicy@view",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::viewAny",
        "fqmn": "App\\Policies\\JobReferralPolicy@viewAny",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::create",
        "fqmn": "App\\Policies\\KieTemplatePolicy@create",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::delete",
        "fqmn": "App\\Policies\\KieTemplatePolicy@delete",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::forceDelete",
        "fqmn": "App\\Policies\\KieTemplatePolicy@forceDelete",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::restore",
        "fqmn": "App\\Policies\\KieTemplatePolicy@restore",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::update",
        "fqmn": "App\\Policies\\KieTemplatePolicy@update",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::view",
        "fqmn": "App\\Policies\\KieTemplatePolicy@view",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::viewAny",
        "fqmn": "App\\Policies\\KieTemplatePolicy@viewAny",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::create",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@create",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::delete",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@delete",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::deleteAny",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@deleteAny",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::forceDelete",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@forceDelete",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::restore",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@restore",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::update",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@update",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::view",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@view",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::viewAny",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@viewAny",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::create",
        "fqmn": "App\\Policies\\OrderPolicy@create",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::delete",
        "fqmn": "App\\Policies\\OrderPolicy@delete",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::forceDelete",
        "fqmn": "App\\Policies\\OrderPolicy@forceDelete",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::restore",
        "fqmn": "App\\Policies\\OrderPolicy@restore",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::update",
        "fqmn": "App\\Policies\\OrderPolicy@update",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::view",
        "fqmn": "App\\Policies\\OrderPolicy@view",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::viewAny",
        "fqmn": "App\\Policies\\OrderPolicy@viewAny",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::create",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@create",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::delete",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@delete",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::forceDelete",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@forceDelete",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::restore",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@restore",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::update",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@update",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::view",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@view",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::viewAny",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@viewAny",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::create",
        "fqmn": "App\\Policies\\PayoutPolicy@create",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::delete",
        "fqmn": "App\\Policies\\PayoutPolicy@delete",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::forceDelete",
        "fqmn": "App\\Policies\\PayoutPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::restore",
        "fqmn": "App\\Policies\\PayoutPolicy@restore",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::update",
        "fqmn": "App\\Policies\\PayoutPolicy@update",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::view",
        "fqmn": "App\\Policies\\PayoutPolicy@view",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::viewAny",
        "fqmn": "App\\Policies\\PayoutPolicy@viewAny",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::create",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@create",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::delete",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@delete",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::deleteAny",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@deleteAny",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::forceDelete",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::restore",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@restore",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::update",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@update",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::view",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@view",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::viewAny",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@viewAny",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::create",
        "fqmn": "App\\Policies\\PlanPolicy@create",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::delete",
        "fqmn": "App\\Policies\\PlanPolicy@delete",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::forceDelete",
        "fqmn": "App\\Policies\\PlanPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::restore",
        "fqmn": "App\\Policies\\PlanPolicy@restore",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::update",
        "fqmn": "App\\Policies\\PlanPolicy@update",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::view",
        "fqmn": "App\\Policies\\PlanPolicy@view",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::viewAny",
        "fqmn": "App\\Policies\\PlanPolicy@viewAny",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::create",
        "fqmn": "App\\Policies\\PlanVersionPolicy@create",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::delete",
        "fqmn": "App\\Policies\\PlanVersionPolicy@delete",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::deleteAny",
        "fqmn": "App\\Policies\\PlanVersionPolicy@deleteAny",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::forceDelete",
        "fqmn": "App\\Policies\\PlanVersionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::restore",
        "fqmn": "App\\Policies\\PlanVersionPolicy@restore",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::update",
        "fqmn": "App\\Policies\\PlanVersionPolicy@update",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::view",
        "fqmn": "App\\Policies\\PlanVersionPolicy@view",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::viewAny",
        "fqmn": "App\\Policies\\PlanVersionPolicy@viewAny",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::create",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@create",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::delete",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@delete",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::forceDelete",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::restore",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@restore",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::update",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@update",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::view",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@view",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::viewAny",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@viewAny",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::create",
        "fqmn": "App\\Policies\\RecognitionPolicy@create",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::delete",
        "fqmn": "App\\Policies\\RecognitionPolicy@delete",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::deleteAny",
        "fqmn": "App\\Policies\\RecognitionPolicy@deleteAny",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::forceDelete",
        "fqmn": "App\\Policies\\RecognitionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::restore",
        "fqmn": "App\\Policies\\RecognitionPolicy@restore",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::update",
        "fqmn": "App\\Policies\\RecognitionPolicy@update",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::view",
        "fqmn": "App\\Policies\\RecognitionPolicy@view",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::viewAny",
        "fqmn": "App\\Policies\\RecognitionPolicy@viewAny",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::create",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@create",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::delete",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@delete",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::deleteAny",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@deleteAny",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::forceDelete",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@forceDelete",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::restore",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@restore",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::update",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@update",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::view",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@view",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::viewAny",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@viewAny",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ReminderPolicy.php::App\\Policies\\ReminderPolicy::delete",
        "fqmn": "App\\Policies\\ReminderPolicy@delete",
        "expected_test_path": "tests/Unit/ReminderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ReminderPolicy.php::App\\Policies\\ReminderPolicy::update",
        "fqmn": "App\\Policies\\ReminderPolicy@update",
        "expected_test_path": "tests/Unit/ReminderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ReminderPolicy.php::App\\Policies\\ReminderPolicy::view",
        "fqmn": "App\\Policies\\ReminderPolicy@view",
        "expected_test_path": "tests/Unit/ReminderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::create",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@create",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::delete",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@delete",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::deleteAny",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@deleteAny",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::forceDelete",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@forceDelete",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::restore",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@restore",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::update",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@update",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::view",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@view",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::viewAny",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@viewAny",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::create",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@create",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::delete",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@delete",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::forceDelete",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@forceDelete",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::restore",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@restore",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::update",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@update",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::view",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@view",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::viewAny",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@viewAny",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::create",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@create",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::delete",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@delete",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::forceDelete",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@forceDelete",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::restore",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@restore",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::update",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@update",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::view",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@view",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::viewAny",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@viewAny",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::create",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@create",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::delete",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@delete",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::deleteAny",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@deleteAny",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::forceDelete",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@forceDelete",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::restore",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@restore",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::update",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@update",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::view",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@view",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::viewAny",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@viewAny",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::approve",
        "fqmn": "App\\Policies\\TaskPolicy@approve",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::cancel",
        "fqmn": "App\\Policies\\TaskPolicy@cancel",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::create",
        "fqmn": "App\\Policies\\TaskPolicy@create",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::delete",
        "fqmn": "App\\Policies\\TaskPolicy@delete",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::manage",
        "fqmn": "App\\Policies\\TaskPolicy@manage",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::update",
        "fqmn": "App\\Policies\\TaskPolicy@update",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::updateStatusAsReceiver",
        "fqmn": "App\\Policies\\TaskPolicy@updateStatusAsReceiver",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::view",
        "fqmn": "App\\Policies\\TaskPolicy@view",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::before",
        "fqmn": "App\\Policies\\UserPolicy@before",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::create",
        "fqmn": "App\\Policies\\UserPolicy@create",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::delete",
        "fqmn": "App\\Policies\\UserPolicy@delete",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::detach",
        "fqmn": "App\\Policies\\UserPolicy@detach",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::forceDelete",
        "fqmn": "App\\Policies\\UserPolicy@forceDelete",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::restore",
        "fqmn": "App\\Policies\\UserPolicy@restore",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::update",
        "fqmn": "App\\Policies\\UserPolicy@update",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::view",
        "fqmn": "App\\Policies\\UserPolicy@view",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::viewAny",
        "fqmn": "App\\Policies\\UserPolicy@viewAny",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::create",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@create",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::delete",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@delete",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::forceDelete",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@forceDelete",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::restore",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@restore",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::update",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@update",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::create",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@create",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::delete",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@delete",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::forceDelete",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::restore",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@restore",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::update",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@update",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::view",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@view",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::viewAny",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@viewAny",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::create",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@create",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::delete",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@delete",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::deleteAny",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@deleteAny",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::forceDelete",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@forceDelete",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::restore",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@restore",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::update",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@update",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::view",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@view",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::viewAny",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@viewAny",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Ai/ActionOrchestrator.php::App\\Services\\Ai\\ActionOrchestrator::execute",
        "fqmn": "App\\Services\\Ai\\ActionOrchestrator@execute",
        "expected_test_path": "tests/Feature/ActionOrchestratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Ai/AiActionResolver.php::App\\Services\\Ai\\AiActionResolver::resolve",
        "fqmn": "App\\Services\\Ai\\AiActionResolver@resolve",
        "expected_test_path": "tests/Feature/AiActionResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Ai/AiActionResolver.php::App\\Services\\Ai\\AiActionResolver::resolveMany",
        "fqmn": "App\\Services\\Ai\\AiActionResolver@resolveMany",
        "expected_test_path": "tests/Feature/AiActionResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Ai/ResolvedAiAction.php::App\\Services\\Ai\\ResolvedAiAction::toArray",
        "fqmn": "App\\Services\\Ai\\ResolvedAiAction@toArray",
        "expected_test_path": "tests/Feature/ResolvedAiActionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::referralInsights",
        "fqmn": "App\\Services\\AiClient@referralInsights",
        "expected_test_path": "tests/Feature/AiClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::summarizeRecognitionKpis",
        "fqmn": "App\\Services\\AiClient@summarizeRecognitionKpis",
        "expected_test_path": "tests/Feature/AiClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::redactText",
        "fqmn": "App\\Services\\AiSanitizer@redactText",
        "expected_test_path": "tests/Feature/AiSanitizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::sanitizeLinkedin",
        "fqmn": "App\\Services\\AiSanitizer@sanitizeLinkedin",
        "expected_test_path": "tests/Feature/AiSanitizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::tokenMapEntities",
        "fqmn": "App\\Services\\AiSanitizer@tokenMapEntities",
        "expected_test_path": "tests/Feature/AiSanitizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getCompanyAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getCompanyAnalytics",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getCultureHeatmap",
        "fqmn": "App\\Services\\AnalyticsService@getCultureHeatmap",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getGlobalAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getGlobalAnalytics",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getGlobalCultureHeatmap",
        "fqmn": "App\\Services\\AnalyticsService@getGlobalCultureHeatmap",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getTeamAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getTeamAnalytics",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::cleanupOldLogs",
        "fqmn": "App\\Services\\AuditService@cleanupOldLogs",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::getAuditSummary",
        "fqmn": "App\\Services\\AuditService@getAuditSummary",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::log",
        "fqmn": "App\\Services\\AuditService@log",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logContactOperation",
        "fqmn": "App\\Services\\AuditService@logContactOperation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logError",
        "fqmn": "App\\Services\\AuditService@logError",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logInvoiceCreation",
        "fqmn": "App\\Services\\AuditService@logInvoiceCreation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logInvoiceSent",
        "fqmn": "App\\Services\\AuditService@logInvoiceSent",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logPaymentReconciliation",
        "fqmn": "App\\Services\\AuditService@logPaymentReconciliation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logProductSync",
        "fqmn": "App\\Services\\AuditService@logProductSync",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logPurchaseOrderCreation",
        "fqmn": "App\\Services\\AuditService@logPurchaseOrderCreation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logSystemOperation",
        "fqmn": "App\\Services\\AuditService@logSystemOperation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logValidationFailure",
        "fqmn": "App\\Services\\AuditService@logValidationFailure",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logZohoOperation",
        "fqmn": "App\\Services\\AuditService@logZohoOperation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::searchAuditLogs",
        "fqmn": "App\\Services\\AuditService@searchAuditLogs",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemResult.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemResult::toArray",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@toArray",
        "expected_test_path": "tests/Feature/PurchaseStoreItemResultTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getCultureMomentumIndex",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getCultureMomentumIndex",
        "expected_test_path": "tests/Feature/CultureAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getCultureVolatility",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getCultureVolatility",
        "expected_test_path": "tests/Feature/CultureAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getSilentDaysMap",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getSilentDaysMap",
        "expected_test_path": "tests/Feature/CultureAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateCliqueCandidates",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateCliqueCandidates",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateRecognitionEquityIndex",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateRecognitionEquityIndex",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateSiloScoreByDepartment",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateSiloScoreByDepartment",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getCliqueCandidates",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getRecognitionEquityIndex",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getRecognitionEquityIndex",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getSiloScoreByDepartment",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getSiloScoreByDepartment",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/HabitAnalyticsService.php::App\\Services\\Awareness\\HabitAnalyticsService::getStreakHealth",
        "fqmn": "App\\Services\\Awareness\\HabitAnalyticsService@getStreakHealth",
        "expected_test_path": "tests/Feature/HabitAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/HabitAnalyticsService.php::App\\Services\\Awareness\\HabitAnalyticsService::getTeamConsistencyIndex",
        "fqmn": "App\\Services\\Awareness\\HabitAnalyticsService@getTeamConsistencyIndex",
        "expected_test_path": "tests/Feature/HabitAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::isLowSpecificity",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@isLowSpecificity",
        "expected_test_path": "tests/Feature/IntensityScoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::toArray",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@toArray",
        "expected_test_path": "tests/Feature/IntensityScoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/ProductivityLinkService.php::App\\Services\\Awareness\\ProductivityLinkService::getUnderRecognizedHighProducers",
        "fqmn": "App\\Services\\Awareness\\ProductivityLinkService@getUnderRecognizedHighProducers",
        "expected_test_path": "tests/Feature/ProductivityLinkServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getAfterHoursStressSignal",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getAfterHoursStressSignal",
        "expected_test_path": "tests/Feature/RiskIntegrityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getLowSpecificityFlags",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getLowSpecificityFlags",
        "expected_test_path": "tests/Feature/RiskIntegrityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getPolicyAbuseWatch",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getPolicyAbuseWatch",
        "expected_test_path": "tests/Feature/RiskIntegrityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getDecliningValues",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues",
        "expected_test_path": "tests/Feature/ValuesAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getImpactScores",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getImpactScores",
        "expected_test_path": "tests/Feature/ValuesAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getRisingValues",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getRisingValues",
        "expected_test_path": "tests/Feature/ValuesAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::collectForView",
        "fqmn": "App\\Services\\BadgeOkrService@collectForView",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getBadgeRoiMetrics",
        "fqmn": "App\\Services\\BadgeOkrService@getBadgeRoiMetrics",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getResultOrientedTargets",
        "fqmn": "App\\Services\\BadgeOkrService@getResultOrientedTargets",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getRoiTimeline",
        "fqmn": "App\\Services\\BadgeOkrService@getRoiTimeline",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getTaskOrientedTargets",
        "fqmn": "App\\Services\\BadgeOkrService@getTaskOrientedTargets",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getTeamProgress",
        "fqmn": "App\\Services\\BadgeOkrService@getTeamProgress",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::awardBadge",
        "fqmn": "App\\Services\\BadgeService@awardBadge",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::checkAndAwardBadges",
        "fqmn": "App\\Services\\BadgeService@checkAndAwardBadges",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::getAvailableBadges",
        "fqmn": "App\\Services\\BadgeService@getAvailableBadges",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::getUserBadgeStats",
        "fqmn": "App\\Services\\BadgeService@getUserBadgeStats",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::revokeBadge",
        "fqmn": "App\\Services\\BadgeService@revokeBadge",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/BillingAmountCalculator.php::App\\Services\\Billing\\BillingAmountCalculator::calculateFromBase",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase",
        "expected_test_path": "tests/Feature/BillingAmountCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/BillingAmountCalculator.php::App\\Services\\Billing\\BillingAmountCalculator::calculateTotal",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@calculateTotal",
        "expected_test_path": "tests/Feature/BillingAmountCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/LedgerBackSyncService.php::App\\Services\\Billing\\LedgerBackSyncService::apply",
        "fqmn": "App\\Services\\Billing\\LedgerBackSyncService@apply",
        "expected_test_path": "tests/Feature/LedgerBackSyncServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/RevenueRecognitionRefundAdjuster.php::App\\Services\\Billing\\RevenueRecognitionRefundAdjuster::adjustForRefund",
        "fqmn": "App\\Services\\Billing\\RevenueRecognitionRefundAdjuster@adjustForRefund",
        "expected_test_path": "tests/Feature/RevenueRecognitionRefundAdjusterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Billing/SeatCountService.php::App\\Services\\Billing\\SeatCountService::getBillableUnitCount",
        "fqmn": "App\\Services\\Billing\\SeatCountService@getBillableUnitCount",
        "expected_test_path": "tests/Feature/SeatCountServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BotMan/BotHelpService.php::App\\Services\\BotMan\\BotHelpService::replyFor",
        "fqmn": "App\\Services\\BotMan\\BotHelpService@replyFor",
        "expected_test_path": "tests/Feature/BotHelpServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/BotMan/BotHelpService.php::App\\Services\\BotMan\\BotHelpService::replyForWithContext",
        "fqmn": "App\\Services\\BotMan\\BotHelpService@replyForWithContext",
        "expected_test_path": "tests/Feature/BotHelpServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadMetricsService.php::App\\Services\\Chat\\ThreadMetricsService::snapshot",
        "fqmn": "App\\Services\\Chat\\ThreadMetricsService@snapshot",
        "expected_test_path": "tests/Feature/ThreadMetricsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::dispatchNewMessageNotifications",
        "fqmn": "App\\Services\\Chat\\ThreadService@dispatchNewMessageNotifications",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::getReplies",
        "fqmn": "App\\Services\\Chat\\ThreadService@getReplies",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::isMutedFor",
        "fqmn": "App\\Services\\Chat\\ThreadService@isMutedFor",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::markRead",
        "fqmn": "App\\Services\\Chat\\ThreadService@markRead",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::mutedUserIds",
        "fqmn": "App\\Services\\Chat\\ThreadService@mutedUserIds",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::setMuted",
        "fqmn": "App\\Services\\Chat\\ThreadService@setMuted",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::unreadCount",
        "fqmn": "App\\Services\\Chat\\ThreadService@unreadCount",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::unreadCountsBulk",
        "fqmn": "App\\Services\\Chat\\ThreadService@unreadCountsBulk",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CityFromIp.php::App\\Services\\CityFromIp::for",
        "fqmn": "App\\Services\\CityFromIp@for",
        "expected_test_path": "tests/Feature/CityFromIpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchDepartments",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchDepartments",
        "expected_test_path": "tests/Feature/CompanyDirectoryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchTeams",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchTeams",
        "expected_test_path": "tests/Feature/CompanyDirectoryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchUsers",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchUsers",
        "expected_test_path": "tests/Feature/CompanyDirectoryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::getCompanyHealth",
        "fqmn": "App\\Services\\CompanyInsightsService@getCompanyHealth",
        "expected_test_path": "tests/Feature/CompanyInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::getPerformanceTrends",
        "fqmn": "App\\Services\\CompanyInsightsService@getPerformanceTrends",
        "expected_test_path": "tests/Feature/CompanyInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::resolve",
        "fqmn": "App\\Services\\CompanyInsightsService@resolve",
        "expected_test_path": "tests/Feature/CompanyInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Ai/AiSummaryPayloadBuilder.php::App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder@build",
        "expected_test_path": "tests/Feature/AiSummaryPayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Ai/OpenAiSummaryClient.php::App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient::generateSummaries",
        "fqmn": "App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient@generateSummaries",
        "expected_test_path": "tests/Feature/OpenAiSummaryClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomKpiService.php::App\\Services\\ControlRoom\\ControlRoomKpiService::buildExecutiveFallback",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomKpiService@buildExecutiveFallback",
        "expected_test_path": "tests/Feature/ControlRoomKpiServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomKpiService.php::App\\Services\\ControlRoom\\ControlRoomKpiService::buildKpiContext",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomKpiService@buildKpiContext",
        "expected_test_path": "tests/Feature/ControlRoomKpiServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::formatValue",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@formatValue",
        "expected_test_path": "tests/Feature/ControlRoomResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::getPriorSummary",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@getPriorSummary",
        "expected_test_path": "tests/Feature/ControlRoomResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::getSummary",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@getSummary",
        "expected_test_path": "tests/Feature/ControlRoomResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/CoverageStatsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build",
        "expected_test_path": "tests/Feature/CoverageStatsPayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder@build",
        "expected_test_path": "tests/Feature/DrilldownPayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/ManagerBudgetTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder@build",
        "expected_test_path": "tests/Feature/ManagerBudgetTablePayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/NarrativePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder::hasNarrative",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative",
        "expected_test_path": "tests/Feature/NarrativePayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/ParticipationSegmentsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder@build",
        "expected_test_path": "tests/Feature/ParticipationSegmentsPayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RankedListTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@build",
        "expected_test_path": "tests/Feature/RankedListTablePayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RankedListTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@hasShape",
        "expected_test_path": "tests/Feature/RankedListTablePayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RateStatsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder@hasShape",
        "expected_test_path": "tests/Feature/RateStatsPayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/TrendPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@build",
        "expected_test_path": "tests/Feature/TrendPayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/TrendPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@hasShape",
        "expected_test_path": "tests/Feature/TrendPayloadBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/GlossaryComposer.php::App\\Services\\ControlRoom\\GlossaryComposer::resolveActiveCompanyId",
        "fqmn": "App\\Services\\ControlRoom\\GlossaryComposer@resolveActiveCompanyId",
        "expected_test_path": "tests/Feature/GlossaryComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ParticipationSegmentResolver.php::App\\Services\\ControlRoom\\ParticipationSegmentResolver::resolveSegmentActivity",
        "fqmn": "App\\Services\\ControlRoom\\ParticipationSegmentResolver@resolveSegmentActivity",
        "expected_test_path": "tests/Feature/ParticipationSegmentResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/ScopeResolver.php::App\\Services\\ControlRoom\\ScopeResolver::resolve",
        "fqmn": "App\\Services\\ControlRoom\\ScopeResolver@resolve",
        "expected_test_path": "tests/Feature/ScopeResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/BaselineBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder@build",
        "expected_test_path": "tests/Feature/BaselineBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/DataAggregator.php::App\\Services\\ControlRoom\\TalentInsights\\DataAggregator::aggregate",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\DataAggregator@aggregate",
        "expected_test_path": "tests/Feature/DataAggregatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/EngagementRisk.php::App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk::computeV2",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk@computeV2",
        "expected_test_path": "tests/Feature/EngagementRiskTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/FeatureBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@build",
        "expected_test_path": "tests/Feature/FeatureBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/FeatureBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder::preprocess",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@preprocess",
        "expected_test_path": "tests/Feature/FeatureBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/LeadershipScore.php::App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore::compute",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore@compute",
        "expected_test_path": "tests/Feature/LeadershipScoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::clamp01",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::mad",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::median",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@median",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::percentileRank",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileRank",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::percentileValue",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileValue",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::robustZScore",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@robustZScore",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::toPercentage",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@toPercentage",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::weightedSum",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@weightedSum",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::winsorize",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@winsorize",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::formatForDisplay",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@formatForDisplay",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::getAtRiskCount",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskCount",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::getAtRiskList",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskList",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::isExcludedFromDisplay",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@isExcludedFromDisplay",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::resolve",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@resolve",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::toLegacyFormat",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@toLegacyFormat",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TimeWindowHelper.php::App\\Services\\ControlRoom\\TimeWindowHelper::detectWindowType",
        "fqmn": "App\\Services\\ControlRoom\\TimeWindowHelper@detectWindowType",
        "expected_test_path": "tests/Feature/TimeWindowHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoom/TimeWindowHelper.php::App\\Services\\ControlRoom\\TimeWindowHelper::resolveWindow",
        "fqmn": "App\\Services\\ControlRoom\\TimeWindowHelper@resolveWindow",
        "expected_test_path": "tests/Feature/TimeWindowHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getBadgeEarnersLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getParticipantLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getParticipantLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getPointsGainersLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getPointsGainersLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getReceiverLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getReceiverLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getTaskCompletorsLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getTaskCompletorsLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::applyAdvanceToInvoice",
        "fqmn": "App\\Services\\CreditLedgerService@applyAdvanceToInvoice",
        "expected_test_path": "tests/Feature/CreditLedgerServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::issueCustomerAdvance",
        "fqmn": "App\\Services\\CreditLedgerService@issueCustomerAdvance",
        "expected_test_path": "tests/Feature/CreditLedgerServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CulturalMomentumService.php::App\\Services\\CulturalMomentumService::compute",
        "fqmn": "App\\Services\\CulturalMomentumService@compute",
        "expected_test_path": "tests/Feature/CulturalMomentumServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CultureMetricsService.php::App\\Services\\CultureMetricsService::getCulturalMomentum",
        "fqmn": "App\\Services\\CultureMetricsService@getCulturalMomentum",
        "expected_test_path": "tests/Feature/CultureMetricsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/CultureMetricsService.php::App\\Services\\CultureMetricsService::getTeamCollaboration",
        "fqmn": "App\\Services\\CultureMetricsService@getTeamCollaboration",
        "expected_test_path": "tests/Feature/CultureMetricsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/BadgesPieComposer.php::App\\Services\\Dashboard\\BadgesPieComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\BadgesPieComposer@compose",
        "expected_test_path": "tests/Feature/BadgesPieComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/CulturePulseFeedComposer.php::App\\Services\\Dashboard\\CulturePulseFeedComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\CulturePulseFeedComposer@compose",
        "expected_test_path": "tests/Feature/CulturePulseFeedComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/LeaderboardSnapshotComposer.php::App\\Services\\Dashboard\\LeaderboardSnapshotComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\LeaderboardSnapshotComposer@compose",
        "expected_test_path": "tests/Feature/LeaderboardSnapshotComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/PerformerRankingComposer.php::App\\Services\\Dashboard\\PerformerRankingComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\PerformerRankingComposer@compose",
        "expected_test_path": "tests/Feature/PerformerRankingComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/RecognitionPointsComposer.php::App\\Services\\Dashboard\\RecognitionPointsComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\RecognitionPointsComposer@compose",
        "expected_test_path": "tests/Feature/RecognitionPointsComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/TaskCompletersComposer.php::App\\Services\\Dashboard\\TaskCompletersComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TaskCompletersComposer@compose",
        "expected_test_path": "tests/Feature/TaskCompletersComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/TasksSummaryComposer.php::App\\Services\\Dashboard\\TasksSummaryComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TasksSummaryComposer@compose",
        "expected_test_path": "tests/Feature/TasksSummaryComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/TeamPerformanceComposer.php::App\\Services\\Dashboard\\TeamPerformanceComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TeamPerformanceComposer@compose",
        "expected_test_path": "tests/Feature/TeamPerformanceComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Dashboard/ValuesPieComposer.php::App\\Services\\Dashboard\\ValuesPieComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\ValuesPieComposer@compose",
        "expected_test_path": "tests/Feature/ValuesPieComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/DataQualityService.php::App\\Services\\DataQualityService::shouldShowWarning",
        "fqmn": "App\\Services\\DataQualityService@shouldShowWarning",
        "expected_test_path": "tests/Feature/DataQualityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/DiDAnalysisService.php::App\\Services\\DiDAnalysisService::calculateRetentionDiD",
        "fqmn": "App\\Services\\DiDAnalysisService@calculateRetentionDiD",
        "expected_test_path": "tests/Feature/DiDAnalysisServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Digest/DigestSourceHealthReporter.php::App\\Services\\Digest\\DigestSourceHealthReporter::aggregate",
        "fqmn": "App\\Services\\Digest\\DigestSourceHealthReporter@aggregate",
        "expected_test_path": "tests/Feature/DigestSourceHealthReporterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Digest/GroundingPromptAppender.php::App\\Services\\Digest\\GroundingPromptAppender::build",
        "fqmn": "App\\Services\\Digest\\GroundingPromptAppender@build",
        "expected_test_path": "tests/Feature/GroundingPromptAppenderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/CityResolver.php::App\\Services\\Digest\\Sources\\CityResolver::resolve",
        "fqmn": "App\\Services\\Digest\\Sources\\CityResolver@resolve",
        "expected_test_path": "tests/Feature/CityResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/CityResolver.php::App\\Services\\Digest\\Sources\\CityResolver::resolveOrCapital",
        "fqmn": "App\\Services\\Digest\\Sources\\CityResolver@resolveOrCapital",
        "expected_test_path": "tests/Feature/CityResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::empty",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@empty",
        "expected_test_path": "tests/Feature/SourceBundleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::isEmpty",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@isEmpty",
        "expected_test_path": "tests/Feature/SourceBundleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::toArray",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@toArray",
        "expected_test_path": "tests/Feature/SourceBundleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Email/CompanyMailer.php::App\\Services\\Email\\CompanyMailer::sendHtml",
        "fqmn": "App\\Services\\Email\\CompanyMailer@sendHtml",
        "expected_test_path": "tests/Feature/CompanyMailerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::generateSampleData",
        "fqmn": "App\\Services\\EmailTemplateService@generateSampleData",
        "expected_test_path": "tests/Feature/EmailTemplateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::getAllowedPlaceholders",
        "fqmn": "App\\Services\\EmailTemplateService@getAllowedPlaceholders",
        "expected_test_path": "tests/Feature/EmailTemplateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::renderTemplate",
        "fqmn": "App\\Services\\EmailTemplateService@renderTemplate",
        "expected_test_path": "tests/Feature/EmailTemplateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ExecutiveOverviewService.php::App\\Services\\ExecutiveOverviewService::build",
        "fqmn": "App\\Services\\ExecutiveOverviewService@build",
        "expected_test_path": "tests/Feature/ExecutiveOverviewServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::build",
        "fqmn": "App\\Services\\ExecutiveSummaryService@build",
        "expected_test_path": "tests/Feature/ExecutiveSummaryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::buildKpi",
        "fqmn": "App\\Services\\ExecutiveSummaryService@buildKpi",
        "expected_test_path": "tests/Feature/ExecutiveSummaryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::buildOkr",
        "fqmn": "App\\Services\\ExecutiveSummaryService@buildOkr",
        "expected_test_path": "tests/Feature/ExecutiveSummaryServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/FcmService.php::App\\Services\\FcmService::send",
        "fqmn": "App\\Services\\FcmService@send",
        "expected_test_path": "tests/Feature/FcmServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/FeatureGateService.php::App\\Services\\FeatureGateService::check",
        "fqmn": "App\\Services\\FeatureGateService@check",
        "expected_test_path": "tests/Feature/FeatureGateServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ForecastComputationService.php::App\\Services\\ForecastComputationService::build",
        "fqmn": "App\\Services\\ForecastComputationService@build",
        "expected_test_path": "tests/Feature/ForecastComputationServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ForecastService.php::App\\Services\\ForecastService::getForecastWidgets",
        "fqmn": "App\\Services\\ForecastService@getForecastWidgets",
        "expected_test_path": "tests/Feature/ForecastServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::chatJson",
        "fqmn": "App\\Services\\GPTService@chatJson",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::chatPlain",
        "fqmn": "App\\Services\\GPTService@chatPlain",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::estimateCost",
        "fqmn": "App\\Services\\GPTService@estimateCost",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::generateDigestContent",
        "fqmn": "App\\Services\\GPTService@generateDigestContent",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::generateReferralInsightsWithFile",
        "fqmn": "App\\Services\\GPTService@generateReferralInsightsWithFile",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::testConnection",
        "fqmn": "App\\Services\\GPTService@testConnection",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::uploadFile",
        "fqmn": "App\\Services\\GPTService@uploadFile",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/CompanyAdequacyService.php::App\\Services\\Guardrails\\CompanyAdequacyService::assess",
        "fqmn": "App\\Services\\Guardrails\\CompanyAdequacyService@assess",
        "expected_test_path": "tests/Feature/CompanyAdequacyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/CompanyAdequacyService.php::App\\Services\\Guardrails\\CompanyAdequacyService::isAdequate",
        "fqmn": "App\\Services\\Guardrails\\CompanyAdequacyService@isAdequate",
        "expected_test_path": "tests/Feature/CompanyAdequacyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::filterNewHires",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@filterNewHires",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getEligibleUserIds",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getEligibleUserIds",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getGraceDays",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getGraceDays",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getOnboardingCohort",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getOnboardingCohort",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::isNewHire",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@isNewHire",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/InvestigationEligibilityService.php::App\\Services\\Guardrails\\InvestigationEligibilityService::computeRelativePerformance",
        "fqmn": "App\\Services\\Guardrails\\InvestigationEligibilityService@computeRelativePerformance",
        "expected_test_path": "tests/Feature/InvestigationEligibilityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Guardrails/InvestigationEligibilityService.php::App\\Services\\Guardrails\\InvestigationEligibilityService::evaluateUsers",
        "fqmn": "App\\Services\\Guardrails\\InvestigationEligibilityService@evaluateUsers",
        "expected_test_path": "tests/Feature/InvestigationEligibilityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::buildSystemPromptGlobal",
        "fqmn": "App\\Services\\HelpEngine@buildSystemPromptGlobal",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::composeGlobal",
        "fqmn": "App\\Services\\HelpEngine@composeGlobal",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::detectLocaleFromMessage",
        "fqmn": "App\\Services\\HelpEngine@detectLocaleFromMessage",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::detectRewardsProgramIntent",
        "fqmn": "App\\Services\\HelpEngine@detectRewardsProgramIntent",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::replyForDM",
        "fqmn": "App\\Services\\HelpEngine@replyForDM",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/AutomationScorer.php::App\\Services\\HireReadiness\\AutomationScorer::score",
        "fqmn": "App\\Services\\HireReadiness\\AutomationScorer@score",
        "expected_test_path": "tests/Feature/AutomationScorerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/AutomationScorer.php::App\\Services\\HireReadiness\\AutomationScorer::scorePendingLines",
        "fqmn": "App\\Services\\HireReadiness\\AutomationScorer@scorePendingLines",
        "expected_test_path": "tests/Feature/AutomationScorerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DistributionPoller.php::App\\Services\\HireReadiness\\DistributionPoller::openPoll",
        "fqmn": "App\\Services\\HireReadiness\\DistributionPoller@openPoll",
        "expected_test_path": "tests/Feature/DistributionPollerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DistributionPoller.php::App\\Services\\HireReadiness\\DistributionPoller::timeoutExpiredResponses",
        "fqmn": "App\\Services\\HireReadiness\\DistributionPoller@timeoutExpiredResponses",
        "expected_test_path": "tests/Feature/DistributionPollerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/AssessmentWindow.php::App\\Services\\HireReadiness\\DTO\\AssessmentWindow::buckets",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\AssessmentWindow@buckets",
        "expected_test_path": "tests/Feature/AssessmentWindowTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::isEmpty",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@isEmpty",
        "expected_test_path": "tests/Feature/PeerSetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::size",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@size",
        "expected_test_path": "tests/Feature/PeerSetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@toArray",
        "expected_test_path": "tests/Feature/PeerSetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::excluded",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@excluded",
        "expected_test_path": "tests/Feature/TeamMetricTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::isIncluded",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isIncluded",
        "expected_test_path": "tests/Feature/TeamMetricTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::isSignificant",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isSignificant",
        "expected_test_path": "tests/Feature/TeamMetricTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@toArray",
        "expected_test_path": "tests/Feature/TeamMetricTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::includedMetrics",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@includedMetrics",
        "expected_test_path": "tests/Feature/TeamSignalSnapshotTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::metric",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@metric",
        "expected_test_path": "tests/Feature/TeamSignalSnapshotTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@toArray",
        "expected_test_path": "tests/Feature/TeamSignalSnapshotTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::closePollAndAssess",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@closePollAndAssess",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::decomposeJd",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@decomposeJd",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::generateNarrative",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@generateNarrative",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::submitForApproval",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@submitForApproval",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::submitForPoll",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@submitForPoll",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/HireRequestPublisher.php::App\\Services\\HireReadiness\\HireRequestPublisher::publish",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPublisher@publish",
        "expected_test_path": "tests/Feature/HireRequestPublisherTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/JdDecomposer.php::App\\Services\\HireReadiness\\JdDecomposer::decompose",
        "fqmn": "App\\Services\\HireReadiness\\JdDecomposer@decompose",
        "expected_test_path": "tests/Feature/JdDecomposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/JdDecomposer.php::App\\Services\\HireReadiness\\JdDecomposer::decomposeAndPersist",
        "fqmn": "App\\Services\\HireReadiness\\JdDecomposer@decomposeAndPersist",
        "expected_test_path": "tests/Feature/JdDecomposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/PeerSetResolver.php::App\\Services\\HireReadiness\\PeerSetResolver::resolve",
        "fqmn": "App\\Services\\HireReadiness\\PeerSetResolver@resolve",
        "expected_test_path": "tests/Feature/PeerSetResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/PromotionMatcher.php::App\\Services\\HireReadiness\\PromotionMatcher::matchPendingLines",
        "fqmn": "App\\Services\\HireReadiness\\PromotionMatcher@matchPendingLines",
        "expected_test_path": "tests/Feature/PromotionMatcherTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/RequesterTrackRecord.php::App\\Services\\HireReadiness\\RequesterTrackRecord::forUser",
        "fqmn": "App\\Services\\HireReadiness\\RequesterTrackRecord@forUser",
        "expected_test_path": "tests/Feature/RequesterTrackRecordTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/AttritionRisk.php::App\\Services\\HireReadiness\\Signals\\AttritionRisk::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\AttritionRisk@compute",
        "expected_test_path": "tests/Feature/AttritionRiskTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/AttritionRisk.php::App\\Services\\HireReadiness\\Signals\\AttritionRisk::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\AttritionRisk@key",
        "expected_test_path": "tests/Feature/AttritionRiskTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/BadgeDistribution.php::App\\Services\\HireReadiness\\Signals\\BadgeDistribution::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute",
        "expected_test_path": "tests/Feature/BadgeDistributionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/BadgeDistribution.php::App\\Services\\HireReadiness\\Signals\\BadgeDistribution::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@key",
        "expected_test_path": "tests/Feature/BadgeDistributionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/GiniCoefficient.php::App\\Services\\HireReadiness\\Signals\\GiniCoefficient::gini",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\GiniCoefficient@gini",
        "expected_test_path": "tests/Feature/GiniCoefficientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/HeadcountTrend.php::App\\Services\\HireReadiness\\Signals\\HeadcountTrend::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute",
        "expected_test_path": "tests/Feature/HeadcountTrendTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/HeadcountTrend.php::App\\Services\\HireReadiness\\Signals\\HeadcountTrend::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@key",
        "expected_test_path": "tests/Feature/HeadcountTrendTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/ReactionDepth.php::App\\Services\\HireReadiness\\Signals\\ReactionDepth::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute",
        "expected_test_path": "tests/Feature/ReactionDepthTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/ReactionDepth.php::App\\Services\\HireReadiness\\Signals\\ReactionDepth::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@key",
        "expected_test_path": "tests/Feature/ReactionDepthTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/RecentHireFlag.php::App\\Services\\HireReadiness\\Signals\\RecentHireFlag::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecentHireFlag@compute",
        "expected_test_path": "tests/Feature/RecentHireFlagTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/RecentHireFlag.php::App\\Services\\HireReadiness\\Signals\\RecentHireFlag::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecentHireFlag@key",
        "expected_test_path": "tests/Feature/RecentHireFlagTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/RecognitionVelocity.php::App\\Services\\HireReadiness\\Signals\\RecognitionVelocity::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@compute",
        "expected_test_path": "tests/Feature/RecognitionVelocityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/RecognitionVelocity.php::App\\Services\\HireReadiness\\Signals\\RecognitionVelocity::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@key",
        "expected_test_path": "tests/Feature/RecognitionVelocityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskCycleTime.php::App\\Services\\HireReadiness\\Signals\\TaskCycleTime::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@compute",
        "expected_test_path": "tests/Feature/TaskCycleTimeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskCycleTime.php::App\\Services\\HireReadiness\\Signals\\TaskCycleTime::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@key",
        "expected_test_path": "tests/Feature/TaskCycleTimeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskThroughput.php::App\\Services\\HireReadiness\\Signals\\TaskThroughput::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@compute",
        "expected_test_path": "tests/Feature/TaskThroughputTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskThroughput.php::App\\Services\\HireReadiness\\Signals\\TaskThroughput::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@key",
        "expected_test_path": "tests/Feature/TaskThroughputTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TenureMix.php::App\\Services\\HireReadiness\\Signals\\TenureMix::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@compute",
        "expected_test_path": "tests/Feature/TenureMixTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Signals/TenureMix.php::App\\Services\\HireReadiness\\Signals\\TenureMix::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@key",
        "expected_test_path": "tests/Feature/TenureMixTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/ConfidenceClassifier.php::App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier::classify",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier@classify",
        "expected_test_path": "tests/Feature/ConfidenceClassifierTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/CoverageScore.php::App\\Services\\HireReadiness\\Statistics\\CoverageScore::compute",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\CoverageScore@compute",
        "expected_test_path": "tests/Feature/CoverageScoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/CoverageScore.php::App\\Services\\HireReadiness\\Statistics\\CoverageScore::rollupConfidence",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\CoverageScore@rollupConfidence",
        "expected_test_path": "tests/Feature/CoverageScoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::coefficientOfVariation",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation",
        "expected_test_path": "tests/Feature/DescriptiveStatisticsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::confidenceInterval95",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@confidenceInterval95",
        "expected_test_path": "tests/Feature/DescriptiveStatisticsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::stddev",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@stddev",
        "expected_test_path": "tests/Feature/DescriptiveStatisticsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/PercentileRank.php::App\\Services\\HireReadiness\\Statistics\\PercentileRank::compute",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\PercentileRank@compute",
        "expected_test_path": "tests/Feature/PercentileRankTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/SignificanceTest.php::App\\Services\\HireReadiness\\Statistics\\SignificanceTest::againstPeerMean",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\SignificanceTest@againstPeerMean",
        "expected_test_path": "tests/Feature/SignificanceTestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/Statistics/TrendAnalysis.php::App\\Services\\HireReadiness\\Statistics\\TrendAnalysis::ols",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\TrendAnalysis@ols",
        "expected_test_path": "tests/Feature/TrendAnalysisTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/TeamHiringHistory.php::App\\Services\\HireReadiness\\TeamHiringHistory::forTeam",
        "fqmn": "App\\Services\\HireReadiness\\TeamHiringHistory@forTeam",
        "expected_test_path": "tests/Feature/TeamHiringHistoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/TeamSignalStatistics.php::App\\Services\\HireReadiness\\TeamSignalStatistics::compute",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@compute",
        "expected_test_path": "tests/Feature/TeamSignalStatisticsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/HireReadiness/TeamSignalStatistics.php::App\\Services\\HireReadiness\\TeamSignalStatistics::signals",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@signals",
        "expected_test_path": "tests/Feature/TeamSignalStatisticsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::enrichContextWithExternalData",
        "fqmn": "App\\Services\\InferenceEngine@enrichContextWithExternalData",
        "expected_test_path": "tests/Feature/InferenceEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::generateContextProfile",
        "fqmn": "App\\Services\\InferenceEngine@generateContextProfile",
        "expected_test_path": "tests/Feature/InferenceEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::validateContextProfile",
        "fqmn": "App\\Services\\InferenceEngine@validateContextProfile",
        "expected_test_path": "tests/Feature/InferenceEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createOrderInvoice",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createOrderInvoice",
        "expected_test_path": "tests/Feature/InvoiceOrchestratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createPlanInvoiceFromCharge",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createPlanInvoiceFromCharge",
        "expected_test_path": "tests/Feature/InvoiceOrchestratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createWalletReceipt",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createWalletReceipt",
        "expected_test_path": "tests/Feature/InvoiceOrchestratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::cleanupDraftInvoices",
        "fqmn": "App\\Services\\InvoiceWorkflowService@cleanupDraftInvoices",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::createInvoiceIfReady",
        "fqmn": "App\\Services\\InvoiceWorkflowService@createInvoiceIfReady",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::getWorkflowStatus",
        "fqmn": "App\\Services\\InvoiceWorkflowService@getWorkflowStatus",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingAdvancesSince",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingAdvancesSince",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingInvoices",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingInvoices",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingInvoicesSince",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingInvoicesSince",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::createJob",
        "fqmn": "App\\Services\\JobService@createJob",
        "expected_test_path": "tests/Feature/JobServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::createReferral",
        "fqmn": "App\\Services\\JobService@createReferral",
        "expected_test_path": "tests/Feature/JobServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::updateJobStatus",
        "fqmn": "App\\Services\\JobService@updateJobStatus",
        "expected_test_path": "tests/Feature/JobServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::classifyDocument",
        "fqmn": "App\\Services\\KieClassifierService@classifyDocument",
        "expected_test_path": "tests/Feature/KieClassifierServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::confirmDocumentType",
        "fqmn": "App\\Services\\KieClassifierService@confirmDocumentType",
        "expected_test_path": "tests/Feature/KieClassifierServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::getClassificationDisplay",
        "fqmn": "App\\Services\\KieClassifierService@getClassificationDisplay",
        "expected_test_path": "tests/Feature/KieClassifierServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::shouldClassifyDocument",
        "fqmn": "App\\Services\\KieClassifierService@shouldClassifyDocument",
        "expected_test_path": "tests/Feature/KieClassifierServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::getDepartmentKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@getDepartmentKnowledge",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::getNameKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@getNameKnowledge",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::normalizeDeptKey",
        "fqmn": "App\\Services\\KnowledgeService@normalizeDeptKey",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::normalizeNameKey",
        "fqmn": "App\\Services\\KnowledgeService@normalizeNameKey",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getInfluenceReachDepth",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth",
        "expected_test_path": "tests/Feature/LeadershipEffectivenessServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getManagerCoverageQuality",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerCoverageQuality",
        "expected_test_path": "tests/Feature/LeadershipEffectivenessServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getManagerLatencyToRecognize",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerLatencyToRecognize",
        "expected_test_path": "tests/Feature/LeadershipEffectivenessServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::summaries",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@summaries",
        "expected_test_path": "tests/Feature/LeadershipEffectivenessServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::getCanonicalKeys",
        "fqmn": "App\\Services\\MappingService@getCanonicalKeys",
        "expected_test_path": "tests/Feature/MappingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::suggestMapping",
        "fqmn": "App\\Services\\MappingService@suggestMapping",
        "expected_test_path": "tests/Feature/MappingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::suggestMappingDetailed",
        "fqmn": "App\\Services\\MappingService@suggestMappingDetailed",
        "expected_test_path": "tests/Feature/MappingServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricConflictDetector.php::App\\Services\\Metrics\\MetricConflictDetector::assertNoUnresolvedConflicts",
        "fqmn": "App\\Services\\Metrics\\MetricConflictDetector@assertNoUnresolvedConflicts",
        "expected_test_path": "tests/Feature/MetricConflictDetectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricConflictDetector.php::App\\Services\\Metrics\\MetricConflictDetector::detectConflicts",
        "fqmn": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "expected_test_path": "tests/Feature/MetricConflictDetectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::get",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@get",
        "expected_test_path": "tests/Feature/MetricSnapshotStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::getFallbackPayload",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@getFallbackPayload",
        "expected_test_path": "tests/Feature/MetricSnapshotStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::getFallbackResult",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@getFallbackResult",
        "expected_test_path": "tests/Feature/MetricSnapshotStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::store",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@store",
        "expected_test_path": "tests/Feature/MetricSnapshotStoreTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/SnapshotShapeAdapter.php::App\\Services\\Metrics\\SnapshotShapeAdapter::toLegacyWidgetData",
        "fqmn": "App\\Services\\Metrics\\SnapshotShapeAdapter@toLegacyWidgetData",
        "expected_test_path": "tests/Feature/SnapshotShapeAdapterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/SnapshotShapeAdapter.php::App\\Services\\Metrics\\SnapshotShapeAdapter::toMetricSnapshotPayload",
        "fqmn": "App\\Services\\Metrics\\SnapshotShapeAdapter@toMetricSnapshotPayload",
        "expected_test_path": "tests/Feature/SnapshotShapeAdapterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::all",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@all",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::definition",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@definition",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::disambiguator",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@disambiguator",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::displayName",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@displayName",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::formula",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@formula",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::get",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@get",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::glossary",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@glossary",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::canUseOccasion",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@canUseOccasion",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getAvailableFeatures",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getAvailableFeatures",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getFeatureDescription",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getFeatureDescription",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getFeatureLimits",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getFeatureLimits",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getRequiredPlanLevel",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getRequiredPlanLevel",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/ManagerResolver.php::App\\Services\\Occasions\\ManagerResolver::getManagerRecipientsFor",
        "fqmn": "App\\Services\\Occasions\\ManagerResolver@getManagerRecipientsFor",
        "expected_test_path": "tests/Feature/ManagerResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/OccasionRenderer.php::App\\Services\\Occasions\\OccasionRenderer::renderEmailContent",
        "fqmn": "App\\Services\\Occasions\\OccasionRenderer@renderEmailContent",
        "expected_test_path": "tests/Feature/OccasionRendererTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/OccasionRenderer.php::App\\Services\\Occasions\\OccasionRenderer::validateTemplate",
        "fqmn": "App\\Services\\Occasions\\OccasionRenderer@validateTemplate",
        "expected_test_path": "tests/Feature/OccasionRendererTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::applyAutoCorrect",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@applyAutoCorrect",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::autoCorrectTypo",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::canonicalizePlaceholders",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@canonicalizePlaceholders",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::extractCleanKey",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@extractCleanKey",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::helpList",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@helpList",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::isValid",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@isValid",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::normalize",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@normalize",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::preferredArabicAlias",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@preferredArabicAlias",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::resolve",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@resolve",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::analyzeConfidenceScores",
        "fqmn": "App\\Services\\OcrAnalyticsService@analyzeConfidenceScores",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::calculateAverageConfidence",
        "fqmn": "App\\Services\\OcrAnalyticsService@calculateAverageConfidence",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::checkOcrServiceHealth",
        "fqmn": "App\\Services\\OcrAnalyticsService@checkOcrServiceHealth",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::exportAnalytics",
        "fqmn": "App\\Services\\OcrAnalyticsService@exportAnalytics",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getDocumentTypeSummary",
        "fqmn": "App\\Services\\OcrAnalyticsService@getDocumentTypeSummary",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpis",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpis",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForDepartment",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForDepartment",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForEmployee",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForEmployee",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForTeam",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForTeam",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForUsers",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForUsers",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getOcrPerformanceStats",
        "fqmn": "App\\Services\\OcrAnalyticsService@getOcrPerformanceStats",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::extract",
        "fqmn": "App\\Services\\OcrClient@extract",
        "expected_test_path": "tests/Feature/OcrClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::getConfig",
        "fqmn": "App\\Services\\OcrClient@getConfig",
        "expected_test_path": "tests/Feature/OcrClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::isHealthy",
        "fqmn": "App\\Services\\OcrClient@isHealthy",
        "expected_test_path": "tests/Feature/OcrClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::computeForAllOrgs",
        "fqmn": "App\\Services\\OkrAutoTargetService@computeForAllOrgs",
        "expected_test_path": "tests/Feature/OkrAutoTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::computeForCompany",
        "fqmn": "App\\Services\\OkrAutoTargetService@computeForCompany",
        "expected_test_path": "tests/Feature/OkrAutoTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::getOkrSettings",
        "fqmn": "App\\Services\\OkrAutoTargetService@getOkrSettings",
        "expected_test_path": "tests/Feature/OkrAutoTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::preview",
        "fqmn": "App\\Services\\OkrAutoTargetService@preview",
        "expected_test_path": "tests/Feature/OkrAutoTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::autoCompleteEligibleOrders",
        "fqmn": "App\\Services\\OrderCompletionService@autoCompleteEligibleOrders",
        "expected_test_path": "tests/Feature/OrderCompletionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::canCompleteOrder",
        "fqmn": "App\\Services\\OrderCompletionService@canCompleteOrder",
        "expected_test_path": "tests/Feature/OrderCompletionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::markOrderCompleted",
        "fqmn": "App\\Services\\OrderCompletionService@markOrderCompleted",
        "expected_test_path": "tests/Feature/OrderCompletionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OrderExportService.php::App\\Services\\OrderExportService::buildInvoicesZip",
        "fqmn": "App\\Services\\OrderExportService@buildInvoicesZip",
        "expected_test_path": "tests/Feature/OrderExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OrderExportService.php::App\\Services\\OrderExportService::streamCsv",
        "fqmn": "App\\Services\\OrderExportService@streamCsv",
        "expected_test_path": "tests/Feature/OrderExportServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::createShipment",
        "fqmn": "App\\Services\\OtoClient@createShipment",
        "expected_test_path": "tests/Feature/OtoClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::getShipment",
        "fqmn": "App\\Services\\OtoClient@getShipment",
        "expected_test_path": "tests/Feature/OtoClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::getShipmentCost",
        "fqmn": "App\\Services\\OtoClient@getShipmentCost",
        "expected_test_path": "tests/Feature/OtoClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::parseWebhook",
        "fqmn": "App\\Services\\OtoClient@parseWebhook",
        "expected_test_path": "tests/Feature/OtoClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::isClientError",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isClientError",
        "expected_test_path": "tests/Feature/TapRefundExceptionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::isServerError",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isServerError",
        "expected_test_path": "tests/Feature/TapRefundExceptionTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::calculateHighlightRegions",
        "fqmn": "App\\Services\\PdfRedliningService@calculateHighlightRegions",
        "expected_test_path": "tests/Feature/PdfRedliningServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::cleanupOldRedlines",
        "fqmn": "App\\Services\\PdfRedliningService@cleanupOldRedlines",
        "expected_test_path": "tests/Feature/PdfRedliningServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::extractBoundingBoxes",
        "fqmn": "App\\Services\\PdfRedliningService@extractBoundingBoxes",
        "expected_test_path": "tests/Feature/PdfRedliningServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::generateRedlinedPdf",
        "fqmn": "App\\Services\\PdfRedliningService@generateRedlinedPdf",
        "expected_test_path": "tests/Feature/PdfRedliningServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PlansCatalogService.php::App\\Services\\PlansCatalogService::getPublicPlansForDisplay",
        "fqmn": "App\\Services\\PlansCatalogService@getPublicPlansForDisplay",
        "expected_test_path": "tests/Feature/PlansCatalogServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Predictive/CulturalHealthIndexCalculator.php::App\\Services\\Predictive\\CulturalHealthIndexCalculator::compute",
        "fqmn": "App\\Services\\Predictive\\CulturalHealthIndexCalculator@compute",
        "expected_test_path": "tests/Feature/CulturalHealthIndexCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Predictive/CulturalMomentumService.php::App\\Services\\Predictive\\CulturalMomentumService::compute",
        "fqmn": "App\\Services\\Predictive\\CulturalMomentumService@compute",
        "expected_test_path": "tests/Feature/CulturalMomentumServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Predictive/ScenarioSimulator.php::App\\Services\\Predictive\\ScenarioSimulator::simulate",
        "fqmn": "App\\Services\\Predictive\\ScenarioSimulator@simulate",
        "expected_test_path": "tests/Feature/ScenarioSimulatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PricingResolver.php::App\\Services\\PricingResolver::getPerUnitPrice",
        "fqmn": "App\\Services\\PricingResolver@getPerUnitPrice",
        "expected_test_path": "tests/Feature/PricingResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Privacy/ConsentService.php::App\\Services\\Privacy\\ConsentService::history",
        "fqmn": "App\\Services\\Privacy\\ConsentService@history",
        "expected_test_path": "tests/Feature/ConsentServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Privacy/ConsentService.php::App\\Services\\Privacy\\ConsentService::toggle",
        "fqmn": "App\\Services\\Privacy\\ConsentService@toggle",
        "expected_test_path": "tests/Feature/ConsentServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Privacy/DataAccessLogger.php::App\\Services\\Privacy\\DataAccessLogger::record",
        "fqmn": "App\\Services\\Privacy\\DataAccessLogger@record",
        "expected_test_path": "tests/Feature/DataAccessLoggerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Privacy/DataAccessLogger.php::App\\Services\\Privacy\\DataAccessLogger::recordAsUser",
        "fqmn": "App\\Services\\Privacy\\DataAccessLogger@recordAsUser",
        "expected_test_path": "tests/Feature/DataAccessLoggerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::categories",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@categories",
        "expected_test_path": "tests/Feature/PrivacyDataCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::consentKeys",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@consentKeys",
        "expected_test_path": "tests/Feature/PrivacyDataCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::defaultFor",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@defaultFor",
        "expected_test_path": "tests/Feature/PrivacyDataCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::thirdPartyProcessors",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@thirdPartyProcessors",
        "expected_test_path": "tests/Feature/PrivacyDataCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::generateCheckoutValidationRules",
        "fqmn": "App\\Services\\ProductCustomFieldsService@generateCheckoutValidationRules",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::getCustomFieldsForCart",
        "fqmn": "App\\Services\\ProductCustomFieldsService@getCustomFieldsForCart",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::getDisplayDataForSupplier",
        "fqmn": "App\\Services\\ProductCustomFieldsService@getDisplayDataForSupplier",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::processCustomFieldsForOrder",
        "fqmn": "App\\Services\\ProductCustomFieldsService@processCustomFieldsForOrder",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::validateCustomFieldsData",
        "fqmn": "App\\Services\\ProductCustomFieldsService@validateCustomFieldsData",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::getPromotionPrecedent",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@getPromotionPrecedent",
        "expected_test_path": "tests/Feature/CompensationEquityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::getSalaryEquityCheck",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@getSalaryEquityCheck",
        "expected_test_path": "tests/Feature/CompensationEquityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::recordCompensation",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@recordCompensation",
        "expected_test_path": "tests/Feature/CompensationEquityServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::checkAndHandleCompletion",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@checkAndHandleCompletion",
        "expected_test_path": "tests/Feature/GrowthBlueprintServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::generate",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@generate",
        "expected_test_path": "tests/Feature/GrowthBlueprintServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::activeCooldown",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@activeCooldown",
        "expected_test_path": "tests/Feature/PromotionApplicationServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::apply",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@apply",
        "expected_test_path": "tests/Feature/PromotionApplicationServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::latestApplication",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@latestApplication",
        "expected_test_path": "tests/Feature/PromotionApplicationServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Promotion/PromotionCalibrationService.php::App\\Services\\Promotion\\PromotionCalibrationService::analyzeFlags",
        "fqmn": "App\\Services\\Promotion\\PromotionCalibrationService@analyzeFlags",
        "expected_test_path": "tests/Feature/PromotionCalibrationServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PromptGeneratorService.php::App\\Services\\PromptGeneratorService::prompts",
        "fqmn": "App\\Services\\PromptGeneratorService@prompts",
        "expected_test_path": "tests/Feature/PromptGeneratorServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::sendToSubscriptions",
        "fqmn": "App\\Services\\PushService@sendToSubscriptions",
        "expected_test_path": "tests/Feature/PushServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::sendToUser",
        "fqmn": "App\\Services\\PushService@sendToUser",
        "expected_test_path": "tests/Feature/PushServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RaiseService.php::App\\Services\\RaiseService::evaluate",
        "fqmn": "App\\Services\\RaiseService@evaluate",
        "expected_test_path": "tests/Feature/RaiseServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getComparisons",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getComparisons",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getKpis",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getKpis",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getRecognitionOutcomeCorrelation",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getRecognitionOutcomeCorrelation",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::canGive",
        "fqmn": "App\\Services\\RecognitionPolicyService@canGive",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::forCompany",
        "fqmn": "App\\Services\\RecognitionPolicyService@forCompany",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::giverUserIds",
        "fqmn": "App\\Services\\RecognitionPolicyService@giverUserIds",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::metadataBlock",
        "fqmn": "App\\Services\\RecognitionPolicyService@metadataBlock",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::userRole",
        "fqmn": "App\\Services\\RecognitionPolicyService@userRole",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::userRoles",
        "fqmn": "App\\Services\\RecognitionPolicyService@userRoles",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionPredictionService.php::App\\Services\\RecognitionPredictionService::computeForScope",
        "fqmn": "App\\Services\\RecognitionPredictionService@computeForScope",
        "expected_test_path": "tests/Feature/RecognitionPredictionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionProgressService.php::App\\Services\\RecognitionProgressService::build",
        "fqmn": "App\\Services\\RecognitionProgressService@build",
        "expected_test_path": "tests/Feature/RecognitionProgressServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::getMonthlyTarget",
        "fqmn": "App\\Services\\RecognitionTargetService@getMonthlyTarget",
        "expected_test_path": "tests/Feature/RecognitionTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::resolveTargetForDate",
        "fqmn": "App\\Services\\RecognitionTargetService@resolveTargetForDate",
        "expected_test_path": "tests/Feature/RecognitionTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::setMonthlyTarget",
        "fqmn": "App\\Services\\RecognitionTargetService@setMonthlyTarget",
        "expected_test_path": "tests/Feature/RecognitionTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RedisLockService.php::App\\Services\\RedisLockService::runWithLock",
        "fqmn": "App\\Services\\RedisLockService@runWithLock",
        "expected_test_path": "tests/Feature/RedisLockServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::approvalDeadline",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@approvalDeadline",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::buildConflicts",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::buildScoreBreakdown",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildScoreBreakdown",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::humanSlot",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@humanSlot",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::lastRewardedDate",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@lastRewardedDate",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::policySummary",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@policySummary",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::tenureDays",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@tenureDays",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Rewards/CompanyCancellationPointsFreeze.php::App\\Services\\Rewards\\CompanyCancellationPointsFreeze::freezeForCompany",
        "fqmn": "App\\Services\\Rewards\\CompanyCancellationPointsFreeze@freezeForCompany",
        "expected_test_path": "tests/Feature/CompanyCancellationPointsFreezeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Rewards/CompanyCancellationPointsFreeze.php::App\\Services\\Rewards\\CompanyCancellationPointsFreeze::previewForCompany",
        "fqmn": "App\\Services\\Rewards\\CompanyCancellationPointsFreeze@previewForCompany",
        "expected_test_path": "tests/Feature/CompanyCancellationPointsFreezeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Rewards/RewardsStatement.php::App\\Services\\Rewards\\RewardsStatement::build",
        "fqmn": "App\\Services\\Rewards\\RewardsStatement@build",
        "expected_test_path": "tests/Feature/RewardsStatementTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardService.php::App\\Services\\RewardService::computeWeeklyWinners",
        "fqmn": "App\\Services\\RewardService@computeWeeklyWinners",
        "expected_test_path": "tests/Feature/RewardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RewardService.php::App\\Services\\RewardService::persistGrants",
        "fqmn": "App\\Services\\RewardService@persistGrants",
        "expected_test_path": "tests/Feature/RewardServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/RfqSubmissionService.php::App\\Services\\RfqSubmissionService::submit",
        "fqmn": "App\\Services\\RfqSubmissionService@submit",
        "expected_test_path": "tests/Feature/RfqSubmissionServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ShipmentService.php::App\\Services\\ShipmentService::createOrderShipments",
        "fqmn": "App\\Services\\ShipmentService@createOrderShipments",
        "expected_test_path": "tests/Feature/ShipmentServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::checkStockAvailability",
        "fqmn": "App\\Services\\StockService@checkStockAvailability",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::cleanupExpiredReservations",
        "fqmn": "App\\Services\\StockService@cleanupExpiredReservations",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::confirmReservations",
        "fqmn": "App\\Services\\StockService@confirmReservations",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::releaseReservations",
        "fqmn": "App\\Services\\StockService@releaseReservations",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::reserveStock",
        "fqmn": "App\\Services\\StockService@reserveStock",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::reserveStockWithBackorder",
        "fqmn": "App\\Services\\StockService@reserveStockWithBackorder",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::classify",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify",
        "expected_test_path": "tests/Feature/AiCustomKpiDrafterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::draft",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@draft",
        "expected_test_path": "tests/Feature/AiCustomKpiDrafterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::openAiJson",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@openAiJson",
        "expected_test_path": "tests/Feature/AiCustomKpiDrafterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/BaselineSuggester.php::App\\Services\\StrategyAlignment\\BaselineSuggester::suggest",
        "fqmn": "App\\Services\\StrategyAlignment\\BaselineSuggester@suggest",
        "expected_test_path": "tests/Feature/BaselineSuggesterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::availableTiersFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@availableTiersFor",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canApproveDefinition",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveDefinition",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canApproveValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveValue",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canAttestOutcome",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canAttestOutcome",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canCreate",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canCreate",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canEditDefinition",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canEditValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditValue",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canReportValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canReportValue",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canResubmitValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canResubmitValue",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canScopeTo",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canScopeTo",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canViewKpi",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canViewKpi",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::departmentManagedBy",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::hasAuthorityOver",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@hasAuthorityOver",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::isDepartmentManager",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isDepartmentManager",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::isEmployeeRole",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isEmployeeRole",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::nextApproverInChain",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@nextApproverInChain",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::resolveApprovalChain",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@resolveApprovalChain",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::scopeOptionsFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@scopeOptionsFor",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::teamsLedOrManagedBy",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::userDepartmentId",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userDepartmentId",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::userTeamIds",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userTeamIds",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiPointMinter.php::App\\Services\\StrategyAlignment\\CustomKpiPointMinter::mint",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiPointMinter@mint",
        "expected_test_path": "tests/Feature/CustomKpiPointMinterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::isFirstSundayOfMonth",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::isSecondSundayOfMonth",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isSecondSundayOfMonth",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::periodJustEnded",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@periodJustEnded",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::pickApproverFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@pickApproverFor",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::runDaily",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@runDaily",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendDue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendDue",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendFirstSundayReminders",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendFirstSundayReminders",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendSecondSundayReminders",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendSecondSundayReminders",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::askIndustryQuestions",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@askIndustryQuestions",
        "expected_test_path": "tests/Feature/StarterKpiDrafterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::draftKpis",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis",
        "expected_test_path": "tests/Feature/StarterKpiDrafterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::draftOkrs",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftOkrs",
        "expected_test_path": "tests/Feature/StarterKpiDrafterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::hasActiveSubscription",
        "fqmn": "App\\Services\\SubscriptionResolver@hasActiveSubscription",
        "expected_test_path": "tests/Feature/SubscriptionResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::latestForCompany",
        "fqmn": "App\\Services\\SubscriptionResolver@latestForCompany",
        "expected_test_path": "tests/Feature/SubscriptionResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::statusForCompany",
        "fqmn": "App\\Services\\SubscriptionResolver@statusForCompany",
        "expected_test_path": "tests/Feature/SubscriptionResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/BlindEmployeeSurveyService.php::App\\Services\\Succession\\BlindEmployeeSurveyService::submitAnswers",
        "fqmn": "App\\Services\\Succession\\BlindEmployeeSurveyService@submitAnswers",
        "expected_test_path": "tests/Feature/BlindEmployeeSurveyServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/CadencePacer.php::App\\Services\\Succession\\CadencePacer::decideAlerts",
        "fqmn": "App\\Services\\Succession\\CadencePacer@decideAlerts",
        "expected_test_path": "tests/Feature/CadencePacerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/Calculators/TimeLockCalculator.php::App\\Services\\Succession\\Calculators\\TimeLockCalculator::compute",
        "fqmn": "App\\Services\\Succession\\Calculators\\TimeLockCalculator@compute",
        "expected_test_path": "tests/Feature/TimeLockCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/CompanyValueTargetService.php::App\\Services\\Succession\\CompanyValueTargetService::canCoSign",
        "fqmn": "App\\Services\\Succession\\CompanyValueTargetService@canCoSign",
        "expected_test_path": "tests/Feature/CompanyValueTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/CompanyValueTargetService.php::App\\Services\\Succession\\CompanyValueTargetService::currentFor",
        "fqmn": "App\\Services\\Succession\\CompanyValueTargetService@currentFor",
        "expected_test_path": "tests/Feature/CompanyValueTargetServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/CrossCheckExecutor.php::App\\Services\\Succession\\CrossCheckExecutor::execute",
        "fqmn": "App\\Services\\Succession\\CrossCheckExecutor@execute",
        "expected_test_path": "tests/Feature/CrossCheckExecutorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/CurriculumBuilderService.php::App\\Services\\Succession\\CurriculumBuilderService::startPlan",
        "fqmn": "App\\Services\\Succession\\CurriculumBuilderService@startPlan",
        "expected_test_path": "tests/Feature/CurriculumBuilderServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/DisputeReportGenerator.php::App\\Services\\Succession\\DisputeReportGenerator::generate",
        "fqmn": "App\\Services\\Succession\\DisputeReportGenerator@generate",
        "expected_test_path": "tests/Feature/DisputeReportGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/Evaluators/NullMetricEvaluator.php::App\\Services\\Succession\\Evaluators\\NullMetricEvaluator::evaluate",
        "fqmn": "App\\Services\\Succession\\Evaluators\\NullMetricEvaluator@evaluate",
        "expected_test_path": "tests/Feature/NullMetricEvaluatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/GptSnapshotRecorder.php::App\\Services\\Succession\\GptSnapshotRecorder::call",
        "fqmn": "App\\Services\\Succession\\GptSnapshotRecorder@call",
        "expected_test_path": "tests/Feature/GptSnapshotRecorderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validate",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validate",
        "expected_test_path": "tests/Feature/MetricBindingValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validateCurriculum",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validateCurriculum",
        "expected_test_path": "tests/Feature/MetricBindingValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validateMilestonesIndividually",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validateMilestonesIndividually",
        "expected_test_path": "tests/Feature/MetricBindingValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::all",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@all",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::exists",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@exists",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::forLocale",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@forLocale",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::get",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@get",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::isNative",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@isNative",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::nativeKeys",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@nativeKeys",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::requiresIntegration",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@requiresIntegration",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MetricCatalogGapLogger.php::App\\Services\\Succession\\MetricCatalogGapLogger::record",
        "fqmn": "App\\Services\\Succession\\MetricCatalogGapLogger@record",
        "expected_test_path": "tests/Feature/MetricCatalogGapLoggerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/MilestoneBindingRewriter.php::App\\Services\\Succession\\MilestoneBindingRewriter::rewrite",
        "fqmn": "App\\Services\\Succession\\MilestoneBindingRewriter@rewrite",
        "expected_test_path": "tests/Feature/MilestoneBindingRewriterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/PipelineStatusService.php::App\\Services\\Succession\\PipelineStatusService::forCompany",
        "fqmn": "App\\Services\\Succession\\PipelineStatusService@forCompany",
        "expected_test_path": "tests/Feature/PipelineStatusServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/PipelineStatusService.php::App\\Services\\Succession\\PipelineStatusService::oneLiner",
        "fqmn": "App\\Services\\Succession\\PipelineStatusService@oneLiner",
        "expected_test_path": "tests/Feature/PipelineStatusServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/PromotionAuditWriter.php::App\\Services\\Succession\\PromotionAuditWriter::recordComputation",
        "fqmn": "App\\Services\\Succession\\PromotionAuditWriter@recordComputation",
        "expected_test_path": "tests/Feature/PromotionAuditWriterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/PromotionValidationScoreService.php::App\\Services\\Succession\\PromotionValidationScoreService::evaluate",
        "fqmn": "App\\Services\\Succession\\PromotionValidationScoreService@evaluate",
        "expected_test_path": "tests/Feature/PromotionValidationScoreServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/PromotionValidationScoreService.php::App\\Services\\Succession\\PromotionValidationScoreService::evaluateWithWeightOverride",
        "fqmn": "App\\Services\\Succession\\PromotionValidationScoreService@evaluateWithWeightOverride",
        "expected_test_path": "tests/Feature/PromotionValidationScoreServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseRecognitionGraphProvider.php::App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider::edges",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider@edges",
        "expected_test_path": "tests/Feature/DatabaseRecognitionGraphProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseTaskBadgeProvider.php::App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider::earnedBadgeIds",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider@earnedBadgeIds",
        "expected_test_path": "tests/Feature/DatabaseTaskBadgeProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseTenureProvider.php::App\\Services\\Succession\\Providers\\DatabaseTenureProvider::trustSeedUserIds",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseTenureProvider@trustSeedUserIds",
        "expected_test_path": "tests/Feature/DatabaseTenureProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::companyTargetDistribution",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@companyTargetDistribution",
        "expected_test_path": "tests/Feature/DatabaseValueDistributionProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::currentTargetId",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@currentTargetId",
        "expected_test_path": "tests/Feature/DatabaseValueDistributionProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::employeeDistribution",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@employeeDistribution",
        "expected_test_path": "tests/Feature/DatabaseValueDistributionProviderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/QuarterlyOverrideExporter.php::App\\Services\\Succession\\QuarterlyOverrideExporter::collect",
        "fqmn": "App\\Services\\Succession\\QuarterlyOverrideExporter@collect",
        "expected_test_path": "tests/Feature/QuarterlyOverrideExporterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/QuarterlyOverrideExporter.php::App\\Services\\Succession\\QuarterlyOverrideExporter::toCsv",
        "fqmn": "App\\Services\\Succession\\QuarterlyOverrideExporter@toCsv",
        "expected_test_path": "tests/Feature/QuarterlyOverrideExporterTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/QuestCompletionDetector.php::App\\Services\\Succession\\QuestCompletionDetector::sweep",
        "fqmn": "App\\Services\\Succession\\QuestCompletionDetector@sweep",
        "expected_test_path": "tests/Feature/QuestCompletionDetectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/RejectionQuestService.php::App\\Services\\Succession\\RejectionQuestService::generateForRejection",
        "fqmn": "App\\Services\\Succession\\RejectionQuestService@generateForRejection",
        "expected_test_path": "tests/Feature/RejectionQuestServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/SuccessionGptClient.php::App\\Services\\Succession\\SuccessionGptClient::generateCurriculum",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculum",
        "expected_test_path": "tests/Feature/SuccessionGptClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/SuccessionGptClient.php::App\\Services\\Succession\\SuccessionGptClient::generateCurriculumWithRetry",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculumWithRetry",
        "expected_test_path": "tests/Feature/SuccessionGptClientTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/SuccessionPointsService.php::App\\Services\\Succession\\SuccessionPointsService::creditMilestoneCompletion",
        "fqmn": "App\\Services\\Succession\\SuccessionPointsService@creditMilestoneCompletion",
        "expected_test_path": "tests/Feature/SuccessionPointsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Succession/SuccessorSelfScoreCalculator.php::App\\Services\\Succession\\SuccessorSelfScoreCalculator::recompute",
        "fqmn": "App\\Services\\Succession\\SuccessorSelfScoreCalculator@recompute",
        "expected_test_path": "tests/Feature/SuccessorSelfScoreCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Summaries/KpiSummaryBuilder.php::App\\Services\\Summaries\\KpiSummaryBuilder::build",
        "fqmn": "App\\Services\\Summaries\\KpiSummaryBuilder@build",
        "expected_test_path": "tests/Feature/KpiSummaryBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Summaries/OkrSummaryBuilder.php::App\\Services\\Summaries\\OkrSummaryBuilder::build",
        "fqmn": "App\\Services\\Summaries\\OkrSummaryBuilder@build",
        "expected_test_path": "tests/Feature/OkrSummaryBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TalentInsightsService.php::App\\Services\\TalentInsightsService::getTalent",
        "fqmn": "App\\Services\\TalentInsightsService@getTalent",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getLeaderWeightHistory",
        "fqmn": "App\\Services\\TalentModelService@getLeaderWeightHistory",
        "expected_test_path": "tests/Feature/TalentModelServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getLeaderWeightsMeta",
        "fqmn": "App\\Services\\TalentModelService@getLeaderWeightsMeta",
        "expected_test_path": "tests/Feature/TalentModelServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getRiskWeights",
        "fqmn": "App\\Services\\TalentModelService@getRiskWeights",
        "expected_test_path": "tests/Feature/TalentModelServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getRiskWeightsMeta",
        "fqmn": "App\\Services\\TalentModelService@getRiskWeightsMeta",
        "expected_test_path": "tests/Feature/TalentModelServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::computeFromNetCents",
        "fqmn": "App\\Services\\TaxService@computeFromNetCents",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::computeFromNetHalalas",
        "fqmn": "App\\Services\\TaxService@computeFromNetHalalas",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRateBps",
        "fqmn": "App\\Services\\TaxService@getVatRateBps",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRateDecimal",
        "fqmn": "App\\Services\\TaxService@getVatRateDecimal",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRatePercent",
        "fqmn": "App\\Services\\TaxService@getVatRatePercent",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::splitInclusiveTotalCents",
        "fqmn": "App\\Services\\TaxService@splitInclusiveTotalCents",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::splitInclusiveTotalHalalas",
        "fqmn": "App\\Services\\TaxService@splitInclusiveTotalHalalas",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/TurnstileService.php::App\\Services\\TurnstileService::verify",
        "fqmn": "App\\Services\\TurnstileService@verify",
        "expected_test_path": "tests/Feature/TurnstileServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetDataResolver.php::App\\Services\\WidgetDataResolver::resolve",
        "fqmn": "App\\Services\\WidgetDataResolver@resolve",
        "expected_test_path": "tests/Feature/WidgetDataResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetDataResolver.php::App\\Services\\WidgetDataResolver::valueForKey",
        "fqmn": "App\\Services\\WidgetDataResolver@valueForKey",
        "expected_test_path": "tests/Feature/WidgetDataResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::categorize",
        "fqmn": "App\\Services\\WidgetMatrixService@categorize",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::filterByClassification",
        "fqmn": "App\\Services\\WidgetMatrixService@filterByClassification",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::filterByUiContainer",
        "fqmn": "App\\Services\\WidgetMatrixService@filterByUiContainer",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::getByCanonical",
        "fqmn": "App\\Services\\WidgetMatrixService@getByCanonical",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::getEnabled",
        "fqmn": "App\\Services\\WidgetMatrixService@getEnabled",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::groupByUiContainer",
        "fqmn": "App\\Services\\WidgetMatrixService@groupByUiContainer",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::hasProTier",
        "fqmn": "App\\Services\\WidgetMatrixService@hasProTier",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AbstractReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget@resolve",
        "expected_test_path": "tests/Feature/AbstractReciprocityWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AfterHoursPercentageWidget.php::App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve",
        "expected_test_path": "tests/Feature/AfterHoursPercentageWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AttachmentRateWidget.php::App\\Services\\Widgets\\Analytics\\AttachmentRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve",
        "expected_test_path": "tests/Feature/AttachmentRateWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AttritionRiskByTenureWidget.php::App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget@resolve",
        "expected_test_path": "tests/Feature/AttritionRiskByTenureWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/AvgRecencyWidget.php::App\\Services\\Widgets\\Analytics\\AvgRecencyWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AvgRecencyWidget@resolve",
        "expected_test_path": "tests/Feature/AvgRecencyWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/BadgesEarnedWindowedWidget.php::App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve",
        "expected_test_path": "tests/Feature/BadgesEarnedWindowedWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/BadgeTargetsCompletionWidget.php::App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget@resolve",
        "expected_test_path": "tests/Feature/BadgeTargetsCompletionWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/BadgeTargetsWidget.php::App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget@resolve",
        "expected_test_path": "tests/Feature/BadgeTargetsWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/BridgeEmployeesWidget.php::App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget@resolve",
        "expected_test_path": "tests/Feature/BridgeEmployeesWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/DiDAnalysisWidget.php::App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@resolve",
        "expected_test_path": "tests/Feature/DiDAnalysisWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/EngagementHealthSummariesWidget.php::App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget::backtest",
        "fqmn": "App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget@backtest",
        "expected_test_path": "tests/Feature/EngagementHealthSummariesWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/GiniCoefficientWidget.php::App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve",
        "expected_test_path": "tests/Feature/GiniCoefficientWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/GiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\GiverCoverageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "expected_test_path": "tests/Feature/GiverCoverageWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/InternalMobilityRateWidget.php::App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget@resolve",
        "expected_test_path": "tests/Feature/InternalMobilityRateWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerBudgetUtilizationWidget.php::App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget@resolve",
        "expected_test_path": "tests/Feature/ManagerBudgetUtilizationWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerResponseRateWidget.php::App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget@resolve",
        "expected_test_path": "tests/Feature/ManagerResponseRateWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerVelocityWidget.php::App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget@resolve",
        "expected_test_path": "tests/Feature/ManagerVelocityWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/NetworkIsolationWidget.php::App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget::calculateNetworkSnapshots",
        "fqmn": "App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget@calculateNetworkSnapshots",
        "expected_test_path": "tests/Feature/NetworkIsolationWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/OkrMomentumForecastWidget.php::App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget@resolve",
        "expected_test_path": "tests/Feature/OkrMomentumForecastWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/PeerToPeerRatioWidget.php::App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget@resolve",
        "expected_test_path": "tests/Feature/PeerToPeerRatioWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/PointsEarnedWindowedWidget.php::App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget@resolve",
        "expected_test_path": "tests/Feature/PointsEarnedWindowedWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ReceiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@resolve",
        "expected_test_path": "tests/Feature/ReceiverCoverageWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\ReciprocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@resolve",
        "expected_test_path": "tests/Feature/ReciprocityWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/RecognitionEquityWidget.php::App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget@resolve",
        "expected_test_path": "tests/Feature/RecognitionEquityWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/RecognitionOutcomeCorrelationWidget.php::App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget@resolve",
        "expected_test_path": "tests/Feature/RecognitionOutcomeCorrelationWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/RetentionRateWidget.php::App\\Services\\Widgets\\Analytics\\RetentionRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RetentionRateWidget@resolve",
        "expected_test_path": "tests/Feature/RetentionRateWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/SilentDaysMapWidget.php::App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@resolve",
        "expected_test_path": "tests/Feature/SilentDaysMapWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/TaskAnalyticsWidget.php::App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget@resolve",
        "expected_test_path": "tests/Feature/TaskAnalyticsWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/TaskMonthlyRollupWidget.php::App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve",
        "expected_test_path": "tests/Feature/TaskMonthlyRollupWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/TimeToFirstReactionWidget.php::App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget@resolve",
        "expected_test_path": "tests/Feature/TimeToFirstReactionWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/Top10ShareWidget.php::App\\Services\\Widgets\\Analytics\\Top10ShareWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@resolve",
        "expected_test_path": "tests/Feature/Top10ShareWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/UnderRecognizedHighProducersWidget.php::App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@resolve",
        "expected_test_path": "tests/Feature/UnderRecognizedHighProducersWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/ValueAdoptionWidget.php::App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget@resolve",
        "expected_test_path": "tests/Feature/ValueAdoptionWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Analytics/WeekendWeekdayRatioWidget.php::App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget@resolve",
        "expected_test_path": "tests/Feature/WeekendWeekdayRatioWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@resolve",
        "expected_test_path": "tests/Feature/BaseSnapshotWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::requestCache",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@requestCache",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolve",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveDeduped",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveDeduped",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveHeadcount",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveHeadcount",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveScope",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveScope",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveWindow",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveWindow",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveWindowWithTz",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveWindowWithTz",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::widgetCacheKey",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@widgetCacheKey",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::window",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@window",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/CompanyStatusLineBuilder.php::App\\Services\\Widgets\\CompanyStatusLineBuilder::build",
        "fqmn": "App\\Services\\Widgets\\CompanyStatusLineBuilder@build",
        "expected_test_path": "tests/Feature/CompanyStatusLineBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/DrilldownSignalDetector.php::App\\Services\\Widgets\\DrilldownSignalDetector::hasAcData",
        "fqmn": "App\\Services\\Widgets\\DrilldownSignalDetector@hasAcData",
        "expected_test_path": "tests/Feature/DrilldownSignalDetectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/DrilldownSignalDetector.php::App\\Services\\Widgets\\DrilldownSignalDetector::resolveSignalType",
        "fqmn": "App\\Services\\Widgets\\DrilldownSignalDetector@resolveSignalType",
        "expected_test_path": "tests/Feature/DrilldownSignalDetectorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Engines/NetworkIsolationEngine.php::App\\Services\\Widgets\\Engines\\NetworkIsolationEngine::run",
        "fqmn": "App\\Services\\Widgets\\Engines\\NetworkIsolationEngine@run",
        "expected_test_path": "tests/Feature/NetworkIsolationEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Engines/TimelinessEngine.php::App\\Services\\Widgets\\Engines\\TimelinessEngine::run",
        "fqmn": "App\\Services\\Widgets\\Engines\\TimelinessEngine@run",
        "expected_test_path": "tests/Feature/TimelinessEngineTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Predictive/BehaviorDriversWidget.php::App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget@resolve",
        "expected_test_path": "tests/Feature/BehaviorDriversWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/Widgets/Predictive/TeamStabilityIndexWidget.php::App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget@resolve",
        "expected_test_path": "tests/Feature/TeamStabilityIndexWidgetTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::customerConverted",
        "fqmn": "App\\Services\\XCapi@customerConverted",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::demoBooked",
        "fqmn": "App\\Services\\XCapi@demoBooked",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::leadSubmitted",
        "fqmn": "App\\Services\\XCapi@leadSubmitted",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::track",
        "fqmn": "App\\Services\\XCapi@track",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::trialStarted",
        "fqmn": "App\\Services\\XCapi@trialStarted",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::getStatus",
        "fqmn": "App\\Services\\ZeptoMailService@getStatus",
        "expected_test_path": "tests/Feature/ZeptoMailServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::isEnabled",
        "fqmn": "App\\Services\\ZeptoMailService@isEnabled",
        "expected_test_path": "tests/Feature/ZeptoMailServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendBulkEmails",
        "fqmn": "App\\Services\\ZeptoMailService@sendBulkEmails",
        "expected_test_path": "tests/Feature/ZeptoMailServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendEmail",
        "fqmn": "App\\Services\\ZeptoMailService@sendEmail",
        "expected_test_path": "tests/Feature/ZeptoMailServiceTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateAdvance",
        "fqmn": "App\\Services\\ZohoDataValidator@validateAdvance",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateCompanyForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateCompanyForZoho",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateContact",
        "fqmn": "App\\Services\\ZohoDataValidator@validateContact",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateInvoice",
        "fqmn": "App\\Services\\ZohoDataValidator@validateInvoice",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateOrderForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateOrderForZoho",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validatePaymentApplication",
        "fqmn": "App\\Services\\ZohoDataValidator@validatePaymentApplication",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateProductForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateProductForZoho",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validatePurchaseOrder",
        "fqmn": "App\\Services\\ZohoDataValidator@validatePurchaseOrder",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::checkHealth",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@checkHealth",
        "expected_test_path": "tests/Feature/ZohoIntegrationMonitorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::sendAlert",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@sendAlert",
        "expected_test_path": "tests/Feature/ZohoIntegrationMonitorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::diffInBusinessDays",
        "fqmn": "App\\Support\\BusinessTimeCalculator@diffInBusinessDays",
        "expected_test_path": "tests/Unit/BusinessTimeCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::diffInMinutes",
        "fqmn": "App\\Support\\BusinessTimeCalculator@diffInMinutes",
        "expected_test_path": "tests/Unit/BusinessTimeCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::resolveSettings",
        "fqmn": "App\\Support\\BusinessTimeCalculator@resolveSettings",
        "expected_test_path": "tests/Unit/BusinessTimeCalculatorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/ControlRoom/WidgetRenderTracker.php::App\\Support\\ControlRoom\\WidgetRenderTracker::failures",
        "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@failures",
        "expected_test_path": "tests/Unit/WidgetRenderTrackerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/EmailTemplateCatalog.php::App\\Support\\EmailTemplateCatalog::all",
        "fqmn": "App\\Support\\EmailTemplateCatalog@all",
        "expected_test_path": "tests/Unit/EmailTemplateCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/EmployerNav.php::App\\Support\\EmployerNav::groups",
        "fqmn": "App\\Support\\EmployerNav@groups",
        "expected_test_path": "tests/Unit/EmployerNavTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/EmployerNav.php::App\\Support\\EmployerNav::items",
        "fqmn": "App\\Support\\EmployerNav@items",
        "expected_test_path": "tests/Unit/EmployerNavTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::expand",
        "fqmn": "App\\Support\\FeatureBundles@expand",
        "expected_test_path": "tests/Unit/FeatureBundlesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::expandBooleans",
        "fqmn": "App\\Support\\FeatureBundles@expandBooleans",
        "expected_test_path": "tests/Unit/FeatureBundlesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::map",
        "fqmn": "App\\Support\\FeatureBundles@map",
        "expected_test_path": "tests/Unit/FeatureBundlesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureGateViewData.php::App\\Support\\FeatureGateViewData::compute",
        "fqmn": "App\\Support\\FeatureGateViewData@compute",
        "expected_test_path": "tests/Unit/FeatureGateViewDataTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::activeWindow",
        "fqmn": "App\\Support\\FeaturePreview@activeWindow",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::canActivateNow",
        "fqmn": "App\\Support\\FeaturePreview@canActivateNow",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::canStartNowForUser",
        "fqmn": "App\\Support\\FeaturePreview@canStartNowForUser",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::eligible",
        "fqmn": "App\\Support\\FeaturePreview@eligible",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::isEligibleRole",
        "fqmn": "App\\Support\\FeaturePreview@isEligibleRole",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::start",
        "fqmn": "App\\Support\\FeaturePreview@start",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::all",
        "fqmn": "App\\Support\\FeatureRegistry@all",
        "expected_test_path": "tests/Unit/FeatureRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::exists",
        "fqmn": "App\\Support\\FeatureRegistry@exists",
        "expected_test_path": "tests/Unit/FeatureRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::isPreviewable",
        "fqmn": "App\\Support\\FeatureRegistry@isPreviewable",
        "expected_test_path": "tests/Unit/FeatureRegistryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::allSlugs",
        "fqmn": "App\\Support\\Features\\FeatureGroups@allSlugs",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::formPathsForGroup",
        "fqmn": "App\\Support\\Features\\FeatureGroups@formPathsForGroup",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::groups",
        "fqmn": "App\\Support\\Features\\FeatureGroups@groups",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::masterChildren",
        "fqmn": "App\\Support\\Features\\FeatureGroups@masterChildren",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::masterPaths",
        "fqmn": "App\\Support\\Features\\FeatureGroups@masterPaths",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::computeMasters",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters",
        "expected_test_path": "tests/Unit/FeatureOverridesNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::flattenOverrides",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@flattenOverrides",
        "expected_test_path": "tests/Unit/FeatureOverridesNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::groupOverrides",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@groupOverrides",
        "expected_test_path": "tests/Unit/FeatureOverridesNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::toBool",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@toBool",
        "expected_test_path": "tests/Unit/FeatureOverridesNormalizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::all",
        "fqmn": "App\\Support\\Features\\Features@all",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::allSlugs",
        "fqmn": "App\\Support\\Features\\Features@allSlugs",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::bundleAliasSlugs",
        "fqmn": "App\\Support\\Features\\Features@bundleAliasSlugs",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::exists",
        "fqmn": "App\\Support\\Features\\Features@exists",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::formPathsForGroup",
        "fqmn": "App\\Support\\Features\\Features@formPathsForGroup",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::groupAliases",
        "fqmn": "App\\Support\\Features\\Features@groupAliases",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::groups",
        "fqmn": "App\\Support\\Features\\Features@groups",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::isPreviewable",
        "fqmn": "App\\Support\\Features\\Features@isPreviewable",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::masterChildren",
        "fqmn": "App\\Support\\Features\\Features@masterChildren",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::masterPaths",
        "fqmn": "App\\Support\\Features\\Features@masterPaths",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureToggleSchemas.php::App\\Support\\Features\\FeatureToggleSchemas::connectGroup",
        "fqmn": "App\\Support\\Features\\FeatureToggleSchemas@connectGroup",
        "expected_test_path": "tests/Unit/FeatureToggleSchemasTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Features/FeatureToggleSchemas.php::App\\Support\\Features\\FeatureToggleSchemas::freeSubscriptionGroups",
        "fqmn": "App\\Support\\Features\\FeatureToggleSchemas@freeSubscriptionGroups",
        "expected_test_path": "tests/Unit/FeatureToggleSchemasTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureToggleForm.php::App\\Support\\FeatureToggleForm::schema",
        "fqmn": "App\\Support\\FeatureToggleForm@schema",
        "expected_test_path": "tests/Unit/FeatureToggleFormTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::canEditPage",
        "fqmn": "App\\Support\\FeatureVisibility@canEditPage",
        "expected_test_path": "tests/Unit/FeatureVisibilityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::canSeeField",
        "fqmn": "App\\Support\\FeatureVisibility@canSeeField",
        "expected_test_path": "tests/Unit/FeatureVisibilityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::deriveFeatureSlugFromEmployerNav",
        "fqmn": "App\\Support\\FeatureVisibility@deriveFeatureSlugFromEmployerNav",
        "expected_test_path": "tests/Unit/FeatureVisibilityTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::canAccessClass",
        "fqmn": "App\\Support\\GateManifest@canAccessClass",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::check",
        "fqmn": "App\\Support\\GateManifest@check",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::entryFor",
        "fqmn": "App\\Support\\GateManifest@entryFor",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::featureKeyFor",
        "fqmn": "App\\Support\\GateManifest@featureKeyFor",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::fieldFeatureKeyFor",
        "fqmn": "App\\Support\\GateManifest@fieldFeatureKeyFor",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::groupKeysForPanel",
        "fqmn": "App\\Support\\GateManifest@groupKeysForPanel",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::navItemsForPanel",
        "fqmn": "App\\Support\\GateManifest@navItemsForPanel",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::resolvePromotionUrl",
        "fqmn": "App\\Support\\GateManifest@resolvePromotionUrl",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::visibleToRole",
        "fqmn": "App\\Support\\GateManifest@visibleToRole",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GuidedBadges.php::App\\Support\\GuidedBadges::templates",
        "fqmn": "App\\Support\\GuidedBadges@templates",
        "expected_test_path": "tests/Unit/GuidedBadgesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/GuidedCompanyValues.php::App\\Support\\GuidedCompanyValues::templates",
        "fqmn": "App\\Support\\GuidedCompanyValues@templates",
        "expected_test_path": "tests/Unit/GuidedCompanyValuesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::derivePanelFromPath",
        "fqmn": "App\\Support\\Help@derivePanelFromPath",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::findRelevantByPath",
        "fqmn": "App\\Support\\Help@findRelevantByPath",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::formatFewshots",
        "fqmn": "App\\Support\\Help@formatFewshots",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadCapabilities",
        "fqmn": "App\\Support\\Help@loadCapabilities",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadFewshots",
        "fqmn": "App\\Support\\Help@loadFewshots",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadWorkflows",
        "fqmn": "App\\Support\\Help@loadWorkflows",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::pickFewshotsForPath",
        "fqmn": "App\\Support\\Help@pickFewshotsForPath",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::pickWorkflowsForPath",
        "fqmn": "App\\Support\\Help@pickWorkflowsForPath",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::saveFewshots",
        "fqmn": "App\\Support\\Help@saveFewshots",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::saveWorkflows",
        "fqmn": "App\\Support\\Help@saveWorkflows",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::summarizeCapability",
        "fqmn": "App\\Support\\Help@summarizeCapability",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::hrefFor",
        "fqmn": "App\\Support\\HelpId@hrefFor",
        "expected_test_path": "tests/Unit/HelpIdTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::idFor",
        "fqmn": "App\\Support\\HelpId@idFor",
        "expected_test_path": "tests/Unit/HelpIdTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::keys",
        "fqmn": "App\\Support\\HelpId@keys",
        "expected_test_path": "tests/Unit/HelpIdTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::manifest",
        "fqmn": "App\\Support\\HelpId@manifest",
        "expected_test_path": "tests/Unit/HelpIdTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::get",
        "fqmn": "App\\Support\\HelpMemory@get",
        "expected_test_path": "tests/Unit/HelpMemoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::hasCoveredAll",
        "fqmn": "App\\Support\\HelpMemory@hasCoveredAll",
        "expected_test_path": "tests/Unit/HelpMemoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::rememberCategories",
        "fqmn": "App\\Support\\HelpMemory@rememberCategories",
        "expected_test_path": "tests/Unit/HelpMemoryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HelpTickets.php::App\\Support\\HelpTickets::log",
        "fqmn": "App\\Support\\HelpTickets@log",
        "expected_test_path": "tests/Unit/HelpTicketsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/HireReadinessAccess.php::App\\Support\\HireReadinessAccess::canAccess",
        "fqmn": "App\\Support\\HireReadinessAccess@canAccess",
        "expected_test_path": "tests/Unit/HireReadinessAccessTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/JobsAccess.php::App\\Support\\JobsAccess::canAccess",
        "fqmn": "App\\Support\\JobsAccess@canAccess",
        "expected_test_path": "tests/Unit/JobsAccessTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/LandingResolver.php::App\\Support\\LandingResolver::resolveLandingPath",
        "fqmn": "App\\Support\\LandingResolver@resolveLandingPath",
        "expected_test_path": "tests/Unit/LandingResolverTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatDateTime",
        "fqmn": "App\\Support\\Locale@formatDateTime",
        "expected_test_path": "tests/Unit/LocaleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatNumber",
        "fqmn": "App\\Support\\Locale@formatNumber",
        "expected_test_path": "tests/Unit/LocaleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatPercent",
        "fqmn": "App\\Support\\Locale@formatPercent",
        "expected_test_path": "tests/Unit/LocaleTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::channel",
        "fqmn": "App\\Support\\Logging\\LogFake@channel",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::fake",
        "fqmn": "App\\Support\\Logging\\LogFake@fake",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::logged",
        "fqmn": "App\\Support\\Logging\\LogFake@logged",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::stack",
        "fqmn": "App\\Support\\Logging\\LogFake@stack",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPath",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPath",
        "expected_test_path": "tests/Unit/SupplierPathGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPathForConversions",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForConversions",
        "expected_test_path": "tests/Unit/SupplierPathGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPathForResponsiveImages",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForResponsiveImages",
        "expected_test_path": "tests/Unit/SupplierPathGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/MetricContract.php::App\\Support\\MetricContract::factory",
        "fqmn": "App\\Support\\MetricContract@factory",
        "expected_test_path": "tests/Unit/MetricContractTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Money.php::App\\Support\\Money::formatSarFromHalalas",
        "fqmn": "App\\Support\\Money@formatSarFromHalalas",
        "expected_test_path": "tests/Unit/MoneyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Money.php::App\\Support\\Money::halalasFromSar",
        "fqmn": "App\\Support\\Money@halalasFromSar",
        "expected_test_path": "tests/Unit/MoneyTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildAdminGroups",
        "fqmn": "App\\Support\\NavBuilder@buildAdminGroups",
        "expected_test_path": "tests/Unit/NavBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildAdminItems",
        "fqmn": "App\\Support\\NavBuilder@buildAdminItems",
        "expected_test_path": "tests/Unit/NavBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildGroups",
        "fqmn": "App\\Support\\NavBuilder@buildGroups",
        "expected_test_path": "tests/Unit/NavBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildItems",
        "fqmn": "App\\Support\\NavBuilder@buildItems",
        "expected_test_path": "tests/Unit/NavBuilderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/NavSeen.php::App\\Support\\NavSeen::getLastSeen",
        "fqmn": "App\\Support\\NavSeen@getLastSeen",
        "expected_test_path": "tests/Unit/NavSeenTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/NavSeen.php::App\\Support\\NavSeen::markSeen",
        "fqmn": "App\\Support\\NavSeen@markSeen",
        "expected_test_path": "tests/Unit/NavSeenTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Notifications/NotificationSender.php::App\\Support\\Notifications\\NotificationSender::sendForSubscriptionEvent",
        "fqmn": "App\\Support\\Notifications\\NotificationSender@sendForSubscriptionEvent",
        "expected_test_path": "tests/Unit/NotificationSenderTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/PlanVersions/FeatureCatalog.php::App\\Support\\PlanVersions\\FeatureCatalog::seats",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@seats",
        "expected_test_path": "tests/Unit/FeatureCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/PlanVersions/FeatureCatalog.php::App\\Support\\PlanVersions\\FeatureCatalog::trial",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@trial",
        "expected_test_path": "tests/Unit/FeatureCatalogTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::collect",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect",
        "expected_test_path": "tests/Unit/PlanVersionFeatureComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::prefill",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@prefill",
        "expected_test_path": "tests/Unit/PlanVersionFeatureComposerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::collectFormMeta",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@collectFormMeta",
        "expected_test_path": "tests/Unit/PlanVersionSynchronizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::extractSeatLimits",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractSeatLimits",
        "expected_test_path": "tests/Unit/PlanVersionSynchronizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::extractTrialDays",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractTrialDays",
        "expected_test_path": "tests/Unit/PlanVersionSynchronizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::prefillFormDefaults",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@prefillFormDefaults",
        "expected_test_path": "tests/Unit/PlanVersionSynchronizerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::canAccess",
        "fqmn": "App\\Support\\RefreshmentsAccess@canAccess",
        "expected_test_path": "tests/Unit/RefreshmentsAccessTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::canNavigate",
        "fqmn": "App\\Support\\RefreshmentsAccess@canNavigate",
        "expected_test_path": "tests/Unit/RefreshmentsAccessTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::count",
        "fqmn": "App\\Support\\ResettingUserQuery@count",
        "expected_test_path": "tests/Unit/ResettingUserQueryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::exists",
        "fqmn": "App\\Support\\ResettingUserQuery@exists",
        "expected_test_path": "tests/Unit/ResettingUserQueryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::where",
        "fqmn": "App\\Support\\ResettingUserQuery@where",
        "expected_test_path": "tests/Unit/ResettingUserQueryTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/RewardsAccess.php::App\\Support\\RewardsAccess::isEnabled",
        "fqmn": "App\\Support\\RewardsAccess@isEnabled",
        "expected_test_path": "tests/Unit/RewardsAccessTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/RewardsAccess.php::App\\Support\\RewardsAccess::pointValueHalalas",
        "fqmn": "App\\Support\\RewardsAccess@pointValueHalalas",
        "expected_test_path": "tests/Unit/RewardsAccessTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Roles.php::App\\Support\\Roles::isSuperAdmin",
        "fqmn": "App\\Support\\Roles@isSuperAdmin",
        "expected_test_path": "tests/Unit/RolesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Roles.php::App\\Support\\Roles::isSupplier",
        "fqmn": "App\\Support\\Roles@isSupplier",
        "expected_test_path": "tests/Unit/RolesTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::codeToName",
        "fqmn": "App\\Support\\SaudiRegions@codeToName",
        "expected_test_path": "tests/Unit/SaudiRegionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::nameToCode",
        "fqmn": "App\\Support\\SaudiRegions@nameToCode",
        "expected_test_path": "tests/Unit/SaudiRegionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::options",
        "fqmn": "App\\Support\\SaudiRegions@options",
        "expected_test_path": "tests/Unit/SaudiRegionsTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Slugs/UniqueSlugGenerator.php::App\\Support\\Slugs\\UniqueSlugGenerator::generate",
        "fqmn": "App\\Support\\Slugs\\UniqueSlugGenerator@generate",
        "expected_test_path": "tests/Unit/UniqueSlugGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Slugs/UniqueSlugGenerator.php::App\\Support\\Slugs\\UniqueSlugGenerator::slugify",
        "fqmn": "App\\Support\\Slugs\\UniqueSlugGenerator@slugify",
        "expected_test_path": "tests/Unit/UniqueSlugGeneratorTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/StoreAccess.php::App\\Support\\StoreAccess::canAccess",
        "fqmn": "App\\Support\\StoreAccess@canAccess",
        "expected_test_path": "tests/Unit/StoreAccessTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Subscriptions/SubscriptionStatusSnapshot.php::App\\Support\\Subscriptions\\SubscriptionStatusSnapshot::for",
        "fqmn": "App\\Support\\Subscriptions\\SubscriptionStatusSnapshot@for",
        "expected_test_path": "tests/Unit/SubscriptionStatusSnapshotTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/Wallet/WalletFreezeGuard.php::App\\Support\\Wallet\\WalletFreezeGuard::assertNotFrozen",
        "fqmn": "App\\Support\\Wallet\\WalletFreezeGuard@assertNotFrozen",
        "expected_test_path": "tests/Unit/WalletFreezeGuardTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "method::app/Support/WidgetVisualHelper.php::App\\Support\\WidgetVisualHelper::resolve",
        "fqmn": "App\\Support\\WidgetVisualHelper@resolve",
        "expected_test_path": "tests/Unit/WidgetVisualHelperTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::get::/health::App\\Http\\Controllers\\Api\\HealthController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "expected_test_path": "tests/Feature/HealthControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/api.php::get::/public/pricing-plans::closure",
        "fqmn": "route::routes/api.php::get::/public/pricing-plans::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::get::/public/pricing-plans::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/auth.php::get::/register::App\\Http\\Controllers\\Auth\\RegisteredUserController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "expected_test_path": "tests/Feature/RegisteredUserControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/auth.php::get::/verify-email::App\\Http\\Controllers\\Auth\\EmailVerificationPromptController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "expected_test_path": "tests/Feature/EmailVerificationPromptControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/auth.php::get::/verify-email/{id}/{hash}::App\\Http\\Controllers\\Auth\\PublicVerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "expected_test_path": "tests/Feature/PublicVerifyEmailControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/internal_governance.php::get::/metrics/governance::closure",
        "fqmn": "route::routes/internal_governance.php::get::/metrics/governance::closure",
        "expected_test_path": "tests/Unit/route::routes/internal_governance.php::get::/metrics/governance::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "fqmn": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "expected_test_path": "tests/Unit/route::routes/test-pdf.php::get::/test-arabic-pdf::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "fqmn": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "expected_test_path": "tests/Unit/route::routes/web_dev.php::get::/puppeteer_login_dev::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web_test_login.php::get::/magic-login::closure",
        "fqmn": "route::routes/web_test_login.php::get::/magic-login::closure",
        "expected_test_path": "tests/Unit/route::routes/web_test_login.php::get::/magic-login::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/::App\\Http\\Controllers\\LandingController::__invoke",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "expected_test_path": "tests/Feature/LandingControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/::App\\Http\\Controllers\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/::closure",
        "fqmn": "route::routes/web.php::get::/::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/assets/riyal.svg::closure",
        "fqmn": "route::routes/web.php::get::/assets/riyal.svg::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/assets/riyal.svg::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/auth/dev/setup::closure",
        "fqmn": "route::routes/web.php::get::/auth/dev/setup::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/auth/dev/setup::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/billing/update-card/{cardId}::App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "expected_test_path": "tests/Feature/UpdateCardMagicLinkControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/dashboard::closure",
        "fqmn": "route::routes/web.php::get::/dashboard::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/dashboard::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/privacy-policy::closure",
        "fqmn": "route::routes/web.php::get::/privacy-policy::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/privacy-policy::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/setup::App\\Http\\Controllers\\Api\\SetupController::setup",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/setup/kpi::App\\Http\\Controllers\\Api\\SetupController::kpi",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/setup/test::App\\Http\\Controllers\\Api\\SetupController::test",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/temp/fix-recognition-cascade::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::fixCascadeBug",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/temp/migrate-recognition::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::debugMigrate",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/temp/recognition-company-check::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::companyCheck",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/temp/recompute-recognition-cascades::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::recomputeCascades",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      },
      {
        "surface_id": "route::routes/web.php::get::/terms-of-service::closure",
        "fqmn": "route::routes/web.php::get::/terms-of-service::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/terms-of-service::closureTest.php",
        "reason": "No covering test in MANUAL allowlist (.ai/manual/approved-tests.json)",
        "intent": null,
        "intent_confidence": null
      }
    ],
    "total_gaps": 1663,
    "coverage_rate": 0.1919
  },
  "candidates": {
    "dead_code": [
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Analytics/Policy/AnalyticsPolicy.php::App\\Domains\\Analytics\\Policy\\AnalyticsPolicy::allowEquity",
        "fqmn": "App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@allowEquity",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Analytics/Policy/AnalyticsPolicy.php::App\\Domains\\Analytics\\Policy\\AnalyticsPolicy::applyConfidenceGating",
        "fqmn": "App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@applyConfidenceGating",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Decisions/ExecutiveBriefService.php::App\\Domains\\Decisions\\ExecutiveBriefService::__construct",
        "fqmn": "App\\Domains\\Decisions\\ExecutiveBriefService@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Decisions/ExecutiveBriefService.php::App\\Domains\\Decisions\\ExecutiveBriefService::weeklyBrief",
        "fqmn": "App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Decisions/Services/ExecutiveBriefService.php::App\\Domains\\Decisions\\Services\\ExecutiveBriefService::__construct",
        "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Decisions/Services/ExecutiveBriefService.php::App\\Domains\\Decisions\\Services\\ExecutiveBriefService::generateWeekly",
        "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@generateWeekly",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Classification/MetricClassificationEngine.php::App\\Domains\\Metrics\\Classification\\MetricClassificationEngine::validateClassification",
        "fqmn": "App\\Domains\\Metrics\\Classification\\MetricClassificationEngine@validateClassification",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Commands/ComputeDayCommand.php::App\\Domains\\Metrics\\Commands\\ComputeDayCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeDayCommand@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Commands/ComputeRangeCommand.php::App\\Domains\\Metrics\\Commands\\ComputeRangeCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeRangeCommand@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Commands/RefreshTodayCommand.php::App\\Domains\\Metrics\\Commands\\RefreshTodayCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\RefreshTodayCommand@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Contracts/WidgetResult.php::App\\Domains\\Metrics\\Contracts\\WidgetResult::fromSnapshotPayload",
        "fqmn": "App\\Domains\\Metrics\\Contracts\\WidgetResult@fromSnapshotPayload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceService.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceService::isSemanticChange",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceService@isSemanticChange",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceService.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceService::snapshotDefinition",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceService@snapshotDefinition",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceValidator.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator::validate",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator@validate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/CleanupOldFactsJob.php::App\\Domains\\Metrics\\Jobs\\CleanupOldFactsJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\CleanupOldFactsJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeDailyFactsJob.php::App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeDailyFactsJob.php::App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeDailyFactsJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputePredictiveDailyJob.php::App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputePredictiveDailyJob.php::App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/RecomputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/RecomputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/RefreshTodayFactsJob.php::App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob::__construct",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Metrics/Jobs/RefreshTodayFactsJob.php::App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::businessEndUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@businessEndUtc",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::businessStartUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@businessStartUtc",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::endUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@endUtc",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::isWeekendRiyadh",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@isWeekendRiyadh",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::riyadhDay",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@riyadhDay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::startUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@startUtc",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::todayRiyadh",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::isCanonical",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@isCanonical",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::normalize",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@normalize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::toDays",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@toDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Domains/Metrics/Support/RedisLock.php::App\\Domains\\Metrics\\Support\\RedisLock::acquire",
        "fqmn": "App\\Domains\\Metrics\\Support\\RedisLock@acquire",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getRelations",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getRelations",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getNavigationLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPluralModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getRelations",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getRelations",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getEloquentQuery",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@shouldRegisterNavigation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource/Pages/ViewNotificationFailure.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure@infolist",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getEloquentQuery",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDeleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@shouldRegisterNavigation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getNavigationLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getRelations",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canCreate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDelete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDeleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@getPages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@infolist",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@shouldRegisterNavigation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Doma",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@table",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Account/MembershipStatusController.php::App\\Http\\Controllers\\Account\\MembershipStatusController::hasActiveMembership",
        "fqmn": "App\\Http\\Controllers\\Account\\MembershipStatusController@hasActiveMembership",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Account/MembershipStatusController.php::App\\Http\\Controllers\\Account\\MembershipStatusController::show",
        "fqmn": "App\\Http\\Controllers\\Account\\MembershipStatusController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::forgotPassword",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@forgotPassword",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@login",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@logout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::register",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@register",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::resendVerification",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@resendVerification",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::resetPassword",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@resetPassword",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::user",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@user",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::activate",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@activate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::audits",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@audits",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::pause",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@pause",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::runs",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@runs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BackorderController.php::App\\Http\\Controllers\\Api\\BackorderController::cancel",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderController@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BackorderEscalationController.php::App\\Http\\Controllers\\Api\\BackorderEscalationController::contactSupplier",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderEscalationController@contactSupplier",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BackorderEscalationController.php::App\\Http\\Controllers\\Api\\BackorderEscalationController::escalate",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderEscalationController@escalate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BackupController.php::App\\Http\\Controllers\\Api\\BackupController::run",
        "fqmn": "App\\Http\\Controllers\\Api\\BackupController@run",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::available",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@available",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::companyStats",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::grant",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@grant",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::stats",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::myTargets",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@myTargets",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/CartValidationController.php::App\\Http\\Controllers\\Api\\CartValidationController::check",
        "fqmn": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/CompanyController.php::App\\Http\\Controllers\\Api\\CompanyController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/CompanyController.php::App\\Http\\Controllers\\Api\\CompanyController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::departments",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::teams",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@teams",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::users",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@users",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ConfigController.php::App\\Http\\Controllers\\Api\\ConfigController::config",
        "fqmn": "App\\Http\\Controllers\\Api\\ConfigController@config",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DeliveryController.php::App\\Http\\Controllers\\Api\\DeliveryController::getStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\DeliveryController@getStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@approve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::batchApprove",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@batchApprove",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::feedback",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@feedback",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::confirmType",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@confirmType",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::download",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@download",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::getClassification",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@getClassification",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::canPerformAction",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@canPerformAction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::diff",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@diff",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::updateField",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@updateField",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::getPlaceholders",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@getPlaceholders",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::preview",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::testSend",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@testSend",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Employer/BillingSnapshotController.php::App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/EntitlementsController.php::App\\Http\\Controllers\\Api\\EntitlementsController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\EntitlementsController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/FeaturePreviewController.php::App\\Http\\Controllers\\Api\\FeaturePreviewController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\FeaturePreviewController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/FeaturePreviewController.php::App\\Http\\Controllers\\Api\\FeaturePreviewController::start",
        "fqmn": "App\\Http\\Controllers\\Api\\FeaturePreviewController@start",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/HealthController.php::App\\Http\\Controllers\\Api\\HealthController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::dmTest",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@dmTest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::health",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@health",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@send",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::adminJobMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@adminJobMetrics",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::companyJobMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@companyJobMetrics",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::downloadReferralCv",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@downloadReferralCv",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::getReferralInsights",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@getReferralInsights",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listAllReferrals",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listAllReferrals",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listCompanyReferrals",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listJobs",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listJobs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::storeJob",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@storeJob",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::storeReferral",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@storeReferral",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::updateJob",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@updateJob",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::updateReferralStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@updateReferralStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::resolve",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@resolve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/LeaderboardController.php::App\\Http\\Controllers\\Api\\LeaderboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\LeaderboardController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/LinkPreviewController.php::App\\Http\\Controllers\\Api\\LinkPreviewController::fetch",
        "fqmn": "App\\Http\\Controllers\\Api\\LinkPreviewController@fetch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/IntegrityController.php::App\\Http\\Controllers\\Api\\Mobile\\IntegrityController::verify",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\IntegrityController@verify",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::completeOnboarding",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@completeOnboarding",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::login",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@login",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@logout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::me",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@me",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::init",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@init",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markAllAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::markThreadRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::muteThread",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@muteThread",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::react",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@react",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::read",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@read",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showGroup",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showGroupMessages",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroupMessages",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::thread",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@thread",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::threadMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@threadMetrics",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::users",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@users",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileConfigController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController::version",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController@version",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileDeviceController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileDeviceController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLeaderboardController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLogController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLogController::batch",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLogController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLogController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileMapsController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController::static",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController@static",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileProfileController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController::changePassword",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@changePassword",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileProfileController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::values",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@values",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRefreshmentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController::presets",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRefreshmentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController::request",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@request",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::invoices",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@invoices",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::markReady",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@markReady",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::orders",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@orders",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::products",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@products",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::stats",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::accept",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@complete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::requested",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@requested",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileUserController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileUserController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUserController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastAs",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastAs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastOn",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastOn",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastWith",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastWith",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::count",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@count",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@markAllAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@markAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@send",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OccasionController.php::App\\Http\\Controllers\\Api\\OccasionController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OcrAnalyticsController.php::App\\Http\\Controllers\\Api\\OcrAnalyticsController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\OcrAnalyticsController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/OcrAnalyticsController.php::App\\Http\\Controllers\\Api\\OcrAnalyticsController::kpis",
        "fqmn": "App\\Http\\Controllers\\Api\\OcrAnalyticsController@kpis",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/PlanVersionController.php::App\\Http\\Controllers\\Api\\PlanVersionController::features",
        "fqmn": "App\\Http\\Controllers\\Api\\PlanVersionController@features",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/PlanVersionController.php::App\\Http\\Controllers\\Api\\PlanVersionController::publicVersions",
        "fqmn": "App\\Http\\Controllers\\Api\\PlanVersionController@publicVersions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/Properties/UnitController.php::App\\Http\\Controllers\\Api\\Properties\\UnitController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Properties\\UnitController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::companyCheck",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::debugMigrate",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::fixCascadeBug",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::kpiOkr",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@kpiOkr",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::recomputeCascades",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::addAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@addAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::addComment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@addComment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::deleteAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@deleteAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::deleteComment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@deleteComment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::feed",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@feed",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::listAttachments",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listAttachments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::listComments",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listComments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::react",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@react",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::unreact",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@unreact",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionExportController.php::App\\Http\\Controllers\\Api\\RecognitionExportController::csv",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionExportController@csv",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionKpiExportController.php::App\\Http\\Controllers\\Api\\RecognitionKpiExportController::export",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionKpiExportController@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::redeem",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@redeem",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SettingsController.php::App\\Http\\Controllers\\Api\\SettingsController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SettingsController.php::App\\Http\\Controllers\\Api\\SettingsController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::kpi",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::setup",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::test",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/StorageProxyController.php::App\\Http\\Controllers\\Api\\StorageProxyController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\StorageProxyController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/StoreController.php::App\\Http\\Controllers\\Api\\StoreController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\StoreController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::previewDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::previewUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::__construct",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyDowngrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::downgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@downgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::listPublicPlanVersions",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@listPublicPlanVersions",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::upgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@upgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionStartController.php::App\\Http\\Controllers\\Api\\SubscriptionStartController::start",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionStartController@start",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::addAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@addAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::addWatcher",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@addWatcher",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@approve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@complete",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::deleteAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@deleteAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::listAttachments",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listAttachments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::listWatchers",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listWatchers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::removeWatcher",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@removeWatcher",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@status",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskMetricsController.php::App\\Http\\Controllers\\Api\\TaskMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskMetricsController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskPrefillController.php::App\\Http\\Controllers\\Api\\TaskPrefillController::getPrefill",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskPrefillController@getPrefill",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@approve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::assign",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@assign",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@reject",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::updateStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@updateStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TransactionController.php::App\\Http\\Controllers\\Api\\TransactionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TransactionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/TransactionsHelpController.php::App\\Http\\Controllers\\Api\\TransactionsHelpController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\TransactionsHelpController@send",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/UploadController.php::App\\Http\\Controllers\\Api\\UploadController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\UploadController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/UserDetachController.php::App\\Http\\Controllers\\Api\\UserDetachController::detach",
        "fqmn": "App\\Http\\Controllers\\Api\\UserDetachController@detach",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/ConfirmablePasswordController.php::App\\Http\\Controllers\\Auth\\ConfirmablePasswordController::show",
        "fqmn": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/ConfirmablePasswordController.php::App\\Http\\Controllers\\Auth\\ConfirmablePasswordController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/EmailVerificationNotificationController.php::App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/EmailVerificationPromptController.php::App\\Http\\Controllers\\Auth\\EmailVerificationPromptController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/NewPasswordController.php::App\\Http\\Controllers\\Auth\\NewPasswordController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\NewPasswordController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/NewPasswordController.php::App\\Http\\Controllers\\Auth\\NewPasswordController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\NewPasswordController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/PasswordController.php::App\\Http\\Controllers\\Auth\\PasswordController::update",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/PasswordResetLinkController.php::App\\Http\\Controllers\\Auth\\PasswordResetLinkController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/PasswordResetLinkController.php::App\\Http\\Controllers\\Auth\\PasswordResetLinkController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/PublicVerifyEmailController.php::App\\Http\\Controllers\\Auth\\PublicVerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/RegisteredUserController.php::App\\Http\\Controllers\\Auth\\RegisteredUserController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/RegisteredUserController.php::App\\Http\\Controllers\\Auth\\RegisteredUserController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Auth/VerifyEmailController.php::App\\Http\\Controllers\\Auth\\VerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerifyEmailController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/BackorderCancelController.php::App\\Http\\Controllers\\BackorderCancelController::cancel",
        "fqmn": "App\\Http\\Controllers\\BackorderCancelController@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Billing/UpdateCardMagicLinkController.php::App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::add",
        "fqmn": "App\\Http\\Controllers\\CartController@add",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::index",
        "fqmn": "App\\Http\\Controllers\\CartController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::remove",
        "fqmn": "App\\Http\\Controllers\\CartController@remove",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::update",
        "fqmn": "App\\Http\\Controllers\\CartController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/CheckoutController.php::App\\Http\\Controllers\\CheckoutController::cancel",
        "fqmn": "App\\Http\\Controllers\\CheckoutController@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/CheckoutController.php::App\\Http\\Controllers\\CheckoutController::checkout",
        "fqmn": "App\\Http\\Controllers\\CheckoutController@checkout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/CheckoutController.php::App\\Http\\Controllers\\CheckoutController::processPointsCheckout",
        "fqmn": "App\\Http\\Controllers\\CheckoutController@processPointsCheckout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/CheckoutController.php::App\\Http\\Controllers\\CheckoutController::success",
        "fqmn": "App\\Http\\Controllers\\CheckoutController@success",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ContactController.php::App\\Http\\Controllers\\ContactController::store",
        "fqmn": "App\\Http\\Controllers\\ContactController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Dev/SubscriptionDryRunController.php::App\\Http\\Controllers\\Dev\\SubscriptionDryRunController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Dev\\SubscriptionDryRunController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::feedback",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@feedback",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::track",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@track",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::unsubscribe",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@unsubscribe",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employee/RewardsReceiptController.php::App\\Http\\Controllers\\Employee\\RewardsReceiptController::download",
        "fqmn": "App\\Http\\Controllers\\Employee\\RewardsReceiptController@download",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::activate",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@activate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::pause",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@pause",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRaisePolicy",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRaiseTemplates",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRewardsPolicy",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardsPolicy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRewardTemplates",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardTemplates",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::cancelSeatSchedule",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@cancelSeatSchedule",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::cancelSubscriptionAtPeriodEnd",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::purchaseSeats",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@purchaseSeats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::purchaseSeatsSuccess",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@purchaseSeatsSuccess",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::resumeSubscription",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@resumeSubscription",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::scheduleSeatReduction",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@scheduleSeatReduction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomExportController.php::App\\Http\\Controllers\\Employer\\ControlRoomExportController::downloadJson",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadJson",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomExportController.php::App\\Http\\Controllers\\Employer\\ControlRoomExportController::downloadPdf",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadPdf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomInvestigationController.php::App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController::show",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/HireReadinessPdfController.php::App\\Http\\Controllers\\Employer\\HireReadinessPdfController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\HireReadinessPdfController@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/KpiExportController.php::App\\Http\\Controllers\\Employer\\KpiExportController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\KpiExportController@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/KpiExportController.php::App\\Http\\Controllers\\Employer\\KpiExportController::recompute",
        "fqmn": "App\\Http\\Controllers\\Employer\\KpiExportController@recompute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/OAuthEmailController.php::App\\Http\\Controllers\\Employer\\OAuthEmailController::callback",
        "fqmn": "App\\Http\\Controllers\\Employer\\OAuthEmailController@callback",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/OAuthEmailController.php::App\\Http\\Controllers\\Employer\\OAuthEmailController::connect",
        "fqmn": "App\\Http\\Controllers\\Employer\\OAuthEmailController@connect",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::oneClickUpgrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@oneClickUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::purchasePlan",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@purchasePlan",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::success",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@success",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/RewardsStatementController.php::App\\Http\\Controllers\\Employer\\RewardsStatementController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\RewardsStatementController@export",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/SubscriptionController.php::App\\Http\\Controllers\\Employer\\SubscriptionController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Employer/SubscriptionController.php::App\\Http\\Controllers\\Employer\\SubscriptionController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyUpgrade",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::destroy",
        "fqmn": "App\\Http\\Controllers\\GroupController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::store",
        "fqmn": "App\\Http\\Controllers\\GroupController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::update",
        "fqmn": "App\\Http\\Controllers\\GroupController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::connect",
        "fqmn": "App\\Http\\Controllers\\HelpController@connect",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::dmTest",
        "fqmn": "App\\Http\\Controllers\\HelpController@dmTest",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::health",
        "fqmn": "App\\Http\\Controllers\\HelpController@health",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/HomeController.php::App\\Http\\Controllers\\HomeController::home",
        "fqmn": "App\\Http\\Controllers\\HomeController@home",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ImportController.php::App\\Http\\Controllers\\ImportController::autocorrect",
        "fqmn": "App\\Http\\Controllers\\ImportController@autocorrect",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::apply",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@apply",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::download",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@download",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::dryRun",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@dryRun",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::index",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::preview",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@preview",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::status",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@status",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/Integrations/OtoWebhookController.php::App\\Http\\Controllers\\Integrations\\OtoWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Integrations\\OtoWebhookController@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/LandingController.php::App\\Http\\Controllers\\LandingController::__invoke",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/LandingController.php::App\\Http\\Controllers\\LandingController::index",
        "fqmn": "App\\Http\\Controllers\\LandingController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::byGroup",
        "fqmn": "App\\Http\\Controllers\\MessageController@byGroup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::byUser",
        "fqmn": "App\\Http\\Controllers\\MessageController@byUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::destroy",
        "fqmn": "App\\Http\\Controllers\\MessageController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::loadOlder",
        "fqmn": "App\\Http\\Controllers\\MessageController@loadOlder",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::markRead",
        "fqmn": "App\\Http\\Controllers\\MessageController@markRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::react",
        "fqmn": "App\\Http\\Controllers\\MessageController@react",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::showAttachment",
        "fqmn": "App\\Http\\Controllers\\MessageController@showAttachment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::store",
        "fqmn": "App\\Http\\Controllers\\MessageController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/NotificationController.php::App\\Http\\Controllers\\NotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAllAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/NotificationController.php::App\\Http\\Controllers\\NotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAsRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/OrdersController.php::App\\Http\\Controllers\\OrdersController::index",
        "fqmn": "App\\Http\\Controllers\\OrdersController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/OrdersController.php::App\\Http\\Controllers\\OrdersController::show",
        "fqmn": "App\\Http\\Controllers\\OrdersController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::destroy",
        "fqmn": "App\\Http\\Controllers\\ProfileController@destroy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::edit",
        "fqmn": "App\\Http\\Controllers\\ProfileController@edit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::update",
        "fqmn": "App\\Http\\Controllers\\ProfileController@update",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::__construct",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::addComment",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addComment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::addReaction",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addReaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::colleagues",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@colleagues",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::create",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::removeReaction",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@removeReaction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::show",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::stats",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@stats",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::form",
        "fqmn": "App\\Http\\Controllers\\RfqController@form",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::pdf",
        "fqmn": "App\\Http\\Controllers\\RfqController@pdf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::submit",
        "fqmn": "App\\Http\\Controllers\\RfqController@submit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::thankyou",
        "fqmn": "App\\Http\\Controllers\\RfqController@thankyou",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SecureOrderPdfController.php::App\\Http\\Controllers\\SecureOrderPdfController::planInvoicePdf",
        "fqmn": "App\\Http\\Controllers\\SecureOrderPdfController@planInvoicePdf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/StorefrontController.php::App\\Http\\Controllers\\StorefrontController::index",
        "fqmn": "App\\Http\\Controllers\\StorefrontController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/StorefrontController.php::App\\Http\\Controllers\\StorefrontController::show",
        "fqmn": "App\\Http\\Controllers\\StorefrontController@show",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::billing",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@billing",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::cancel",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::checkout",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@checkout",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::confirm",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@confirm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::plan",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@plan",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::portal",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@portal",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::subscribe",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@subscribe",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SuccessionDossierController.php::App\\Http\\Controllers\\SuccessionDossierController::seal",
        "fqmn": "App\\Http\\Controllers\\SuccessionDossierController@seal",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/SuccessionDossierController.php::App\\Http\\Controllers\\SuccessionDossierController::updateMilestone",
        "fqmn": "App\\Http\\Controllers\\SuccessionDossierController@updateMilestone",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/TapWebhookController.php::App\\Http\\Controllers\\TapWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\TapWebhookController@handle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/TapWebhookController.php::App\\Http\\Controllers\\TapWebhookController::processTapEventPayload",
        "fqmn": "App\\Http\\Controllers\\TapWebhookController@processTapEventPayload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::blockUnblock",
        "fqmn": "App\\Http\\Controllers\\UserController@blockUnblock",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::changeRole",
        "fqmn": "App\\Http\\Controllers\\UserController@changeRole",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::lookupUlid",
        "fqmn": "App\\Http\\Controllers\\UserController@lookupUlid",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::store",
        "fqmn": "App\\Http\\Controllers\\UserController@store",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::authenticate",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@authenticate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::ensureIsNotRateLimited",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@ensureIsNotRateLimited",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::throttleKey",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@throttleKey",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::validatedWithDefaults",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedFrom",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedPeriod",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedScope",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedScope",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedTo",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedTo",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validationData",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validationData",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/GroupResource.php::App\\Http\\Resources\\GroupResource::toArray",
        "fqmn": "App\\Http\\Resources\\GroupResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/MessageAttachmentResource.php::App\\Http\\Resources\\MessageAttachmentResource::toArray",
        "fqmn": "App\\Http\\Resources\\MessageAttachmentResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/MessageResource.php::App\\Http\\Resources\\MessageResource::toArray",
        "fqmn": "App\\Http\\Resources\\MessageResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/TaskResource.php::App\\Http\\Resources\\TaskResource::toArray",
        "fqmn": "App\\Http\\Resources\\TaskResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Http",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Http/Resources/UserResource.php::App\\Http\\Resources\\UserResource::toArray",
        "fqmn": "App\\Http\\Resources\\UserResource@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/AccrueCogsForOrderDelivery.php::App\\Jobs\\AccrueCogsForOrderDelivery::__construct",
        "fqmn": "App\\Jobs\\AccrueCogsForOrderDelivery@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/AutoCorrectUsersImport.php::App\\Jobs\\AutoCorrectUsersImport::__construct",
        "fqmn": "App\\Jobs\\AutoCorrectUsersImport@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/BackfillOrderAdvancePdfs.php::App\\Jobs\\BackfillOrderAdvancePdfs::__construct",
        "fqmn": "App\\Jobs\\BackfillOrderAdvancePdfs@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/Billing/RecordGatewayFeeJob.php::App\\Jobs\\Billing\\RecordGatewayFeeJob::__construct",
        "fqmn": "App\\Jobs\\Billing\\RecordGatewayFeeJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/BroadcastRecognitionCreated.php::App\\Jobs\\BroadcastRecognitionCreated::__construct",
        "fqmn": "App\\Jobs\\BroadcastRecognitionCreated@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ComputeControlRoomAiSummary.php::App\\Jobs\\ComputeControlRoomAiSummary::__construct",
        "fqmn": "App\\Jobs\\ComputeControlRoomAiSummary@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ComputeWidgetSnapshots.php::App\\Jobs\\ComputeWidgetSnapshots::__construct",
        "fqmn": "App\\Jobs\\ComputeWidgetSnapshots@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ComputeWidgetSnapshots.php::App\\Jobs\\ComputeWidgetSnapshots::resolveWidgetKeys",
        "fqmn": "App\\Jobs\\ComputeWidgetSnapshots@resolveWidgetKeys",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ConsolidateUnbilledCharges.php::App\\Jobs\\ConsolidateUnbilledCharges::__construct",
        "fqmn": "App\\Jobs\\ConsolidateUnbilledCharges@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/CreateZohoBillForOrderSupplier.php::App\\Jobs\\CreateZohoBillForOrderSupplier::__construct",
        "fqmn": "App\\Jobs\\CreateZohoBillForOrderSupplier@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/CreateZohoInvoiceForOrder.php::App\\Jobs\\CreateZohoInvoiceForOrder::__construct",
        "fqmn": "App\\Jobs\\CreateZohoInvoiceForOrder@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/CreateZohoPurchaseOrdersForOrder.php::App\\Jobs\\CreateZohoPurchaseOrdersForOrder::__construct",
        "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/DeleteGroupJob.php::App\\Jobs\\DeleteGroupJob::__construct",
        "fqmn": "App\\Jobs\\DeleteGroupJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/DetectZohoSideEdits.php::App\\Jobs\\DetectZohoSideEdits::applyReconcile",
        "fqmn": "App\\Jobs\\DetectZohoSideEdits@applyReconcile",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/DetectZohoSideEdits.php::App\\Jobs\\DetectZohoSideEdits::applySupersede",
        "fqmn": "App\\Jobs\\DetectZohoSideEdits@applySupersede",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/DispatchOcrJob.php::App\\Jobs\\DispatchOcrJob::__construct",
        "fqmn": "App\\Jobs\\DispatchOcrJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/EnsureOrderZohoAdvance.php::App\\Jobs\\EnsureOrderZohoAdvance::__construct",
        "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/GenerateDigestBatch.php::App\\Jobs\\GenerateDigestBatch::__construct",
        "fqmn": "App\\Jobs\\GenerateDigestBatch@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/GenerateHelpBotReply.php::App\\Jobs\\GenerateHelpBotReply::__construct",
        "fqmn": "App\\Jobs\\GenerateHelpBotReply@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::__construct",
        "fqmn": "App\\Jobs\\GenerateReferralInsights@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::cacheKey",
        "fqmn": "App\\Jobs\\GenerateReferralInsights@cacheKey",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/InvariantMonitor.php::App\\Jobs\\InvariantMonitor::applyApproved",
        "fqmn": "App\\Jobs\\InvariantMonitor@applyApproved",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/Middleware/EnsureFeature.php::App\\Jobs\\Middleware\\EnsureFeature::__construct",
        "fqmn": "App\\Jobs\\Middleware\\EnsureFeature@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/MonitorStuckOrders.php::App\\Jobs\\MonitorStuckOrders::__construct",
        "fqmn": "App\\Jobs\\MonitorStuckOrders@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/Occasions/ManagerHeadsUpJob.php::App\\Jobs\\Occasions\\ManagerHeadsUpJob::__construct",
        "fqmn": "App\\Jobs\\Occasions\\ManagerHeadsUpJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/Occasions/OccasionEmailSendJob.php::App\\Jobs\\Occasions\\OccasionEmailSendJob::__construct",
        "fqmn": "App\\Jobs\\Occasions\\OccasionEmailSendJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/Occasions/OccasionEventDispatchJob.php::App\\Jobs\\Occasions\\OccasionEventDispatchJob::__construct",
        "fqmn": "App\\Jobs\\Occasions\\OccasionEventDispatchJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/PostShippingExpenseToZoho.php::App\\Jobs\\PostShippingExpenseToZoho::__construct",
        "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/PrefetchPlanInvoice.php::App\\Jobs\\PrefetchPlanInvoice::__construct",
        "fqmn": "App\\Jobs\\PrefetchPlanInvoice@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/PrefetchWalletReceipt.php::App\\Jobs\\PrefetchWalletReceipt::__construct",
        "fqmn": "App\\Jobs\\PrefetchWalletReceipt@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/Privacy/GenerateDataExportJob.php::App\\Jobs\\Privacy\\GenerateDataExportJob::__construct",
        "fqmn": "App\\Jobs\\Privacy\\GenerateDataExportJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ProcessDunningRetryJob.php::App\\Jobs\\ProcessDunningRetryJob::__construct",
        "fqmn": "App\\Jobs\\ProcessDunningRetryJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ProcessSmartInvoices.php::App\\Jobs\\ProcessSmartInvoices::__construct",
        "fqmn": "App\\Jobs\\ProcessSmartInvoices@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ProcessSupplierInvoiceOcr.php::App\\Jobs\\ProcessSupplierInvoiceOcr::__construct",
        "fqmn": "App\\Jobs\\ProcessSupplierInvoiceOcr@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ProcessTapPlanPurchase.php::App\\Jobs\\ProcessTapPlanPurchase::__construct",
        "fqmn": "App\\Jobs\\ProcessTapPlanPurchase@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ProcessTapPlanUpgrade.php::App\\Jobs\\ProcessTapPlanUpgrade::__construct",
        "fqmn": "App\\Jobs\\ProcessTapPlanUpgrade@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ProcessZohoOutboxEntry.php::App\\Jobs\\ProcessZohoOutboxEntry::__construct",
        "fqmn": "App\\Jobs\\ProcessZohoOutboxEntry@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ReconcilePaymentForOrder.php::App\\Jobs\\ReconcilePaymentForOrder::__construct",
        "fqmn": "App\\Jobs\\ReconcilePaymentForOrder@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/RecordOtoTopUpInZoho.php::App\\Jobs\\RecordOtoTopUpInZoho::__construct",
        "fqmn": "App\\Jobs\\RecordOtoTopUpInZoho@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/RecordSalesCommissionInZoho.php::App\\Jobs\\RecordSalesCommissionInZoho::__construct",
        "fqmn": "App\\Jobs\\RecordSalesCommissionInZoho@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/RetryTapWebhookJob.php::App\\Jobs\\RetryTapWebhookJob::__construct",
        "fqmn": "App\\Jobs\\RetryTapWebhookJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/ScanRemindersJob.php::App\\Jobs\\ScanRemindersJob::__construct",
        "fqmn": "App\\Jobs\\ScanRemindersJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/SeedGuidedBadges.php::App\\Jobs\\SeedGuidedBadges::__construct",
        "fqmn": "App\\Jobs\\SeedGuidedBadges@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/SeedGuidedCompanyValues.php::App\\Jobs\\SeedGuidedCompanyValues::__construct",
        "fqmn": "App\\Jobs\\SeedGuidedCompanyValues@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/SendApprovedDigests.php::App\\Jobs\\SendApprovedDigests::__construct",
        "fqmn": "App\\Jobs\\SendApprovedDigests@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/SendOrderCompletionNotification.php::App\\Jobs\\SendOrderCompletionNotification::__construct",
        "fqmn": "App\\Jobs\\SendOrderCompletionNotification@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/SendReminderJob.php::App\\Jobs\\SendReminderJob::__construct",
        "fqmn": "App\\Jobs\\SendReminderJob@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/SendZohoAdvance.php::App\\Jobs\\SendZohoAdvance::__construct",
        "fqmn": "App\\Jobs\\SendZohoAdvance@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/SettleSupplierInvoicePayment.php::App\\Jobs\\SettleSupplierInvoicePayment::__construct",
        "fqmn": "App\\Jobs\\SettleSupplierInvoicePayment@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::__construct",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::initProgress",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@initProgress",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::progressCacheKey",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@progressCacheKey",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/Succession/GenerateSuccessionCurriculum.php::App\\Jobs\\Succession\\GenerateSuccessionCurriculum::__construct",
        "fqmn": "App\\Jobs\\Succession\\GenerateSuccessionCurriculum@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/SyncProductToZoho.php::App\\Jobs\\SyncProductToZoho::__construct",
        "fqmn": "App\\Jobs\\SyncProductToZoho@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/UploadZohoBillAttachment.php::App\\Jobs\\UploadZohoBillAttachment::__construct",
        "fqmn": "App\\Jobs\\UploadZohoBillAttachment@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/WarmCompanyKpiOkr.php::App\\Jobs\\WarmCompanyKpiOkr::__construct",
        "fqmn": "App\\Jobs\\WarmCompanyKpiOkr@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/WarmKpiCacheForDay.php::App\\Jobs\\WarmKpiCacheForDay::__construct",
        "fqmn": "App\\Jobs\\WarmKpiCacheForDay@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Jobs",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Jobs/WarmKpiOkrCache.php::App\\Jobs\\WarmKpiOkrCache::__construct",
        "fqmn": "App\\Jobs\\WarmKpiOkrCache@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/Billing/EnforceHighWaterMark.php::App\\Listeners\\Billing\\EnforceHighWaterMark::__construct",
        "fqmn": "App\\Listeners\\Billing\\EnforceHighWaterMark@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::__construct",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastAs",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastAs",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastOn",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastOn",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastWith",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastWith",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleApproved",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleApproved",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleCheckpointCompleted",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleCheckpointCompleted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleRejected",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleRejected",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/EnforceHighWaterMark.php::App\\Listeners\\EnforceHighWaterMark::recordSeatAddition",
        "fqmn": "App\\Listeners\\EnforceHighWaterMark@recordSeatAddition",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/Rewards/FreezePointsOnCompanyCancellation.php::App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation::__construct",
        "fqmn": "App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/SendRecognitionNotifications.php::App\\Listeners\\SendRecognitionNotifications::resetCache",
        "fqmn": "App\\Listeners\\SendRecognitionNotifications@resetCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/List",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Listeners/SuspendAutoChargeOnDispute.php::App\\Listeners\\SuspendAutoChargeOnDispute::__construct",
        "fqmn": "App\\Listeners\\SuspendAutoChargeOnDispute@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Company.php::App\\Models\\Company::canAddSeat",
        "fqmn": "App\\Models\\Company@canAddSeat",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Conversation.php::App\\Models\\Conversation::updateConversationWithMessage",
        "fqmn": "App\\Models\\Conversation@updateConversationWithMessage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/DocumentFieldIndex.php::App\\Models\\DocumentFieldIndex::removeIndex",
        "fqmn": "App\\Models\\DocumentFieldIndex@removeIndex",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/DocumentFieldIndex.php::App\\Models\\DocumentFieldIndex::updateIndex",
        "fqmn": "App\\Models\\DocumentFieldIndex@updateIndex",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Group.php::App\\Models\\Group::updateGroupWithMessage",
        "fqmn": "App\\Models\\Group@updateGroupWithMessage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::approvals",
        "fqmn": "App\\Models\\HireRequest@approvals",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::company",
        "fqmn": "App\\Models\\HireRequest@company",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::isOpen",
        "fqmn": "App\\Models\\HireRequest@isOpen",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::isReplacement",
        "fqmn": "App\\Models\\HireRequest@isReplacement",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::jdLines",
        "fqmn": "App\\Models\\HireRequest@jdLines",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::jobPosting",
        "fqmn": "App\\Models\\HireRequest@jobPosting",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::outcomeCheckpoints",
        "fqmn": "App\\Models\\HireRequest@outcomeCheckpoints",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::rejectedBy",
        "fqmn": "App\\Models\\HireRequest@rejectedBy",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::replacementUser",
        "fqmn": "App\\Models\\HireRequest@replacementUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::report",
        "fqmn": "App\\Models\\HireRequest@report",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::requester",
        "fqmn": "App\\Models\\HireRequest@requester",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::targetDepartment",
        "fqmn": "App\\Models\\HireRequest@targetDepartment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::targetTeam",
        "fqmn": "App\\Models\\HireRequest@targetTeam",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/KieTemplate.php::App\\Models\\KieTemplate::resolveTemplate",
        "fqmn": "App\\Models\\KieTemplate@resolveTemplate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/NotificationSetting.php::App\\Models\\NotificationSetting::forCompany",
        "fqmn": "App\\Models\\NotificationSetting@forCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Occasions/HolidayCalendar.php::App\\Models\\Occasions\\HolidayCalendar::getCalendarForCompany",
        "fqmn": "App\\Models\\Occasions\\HolidayCalendar@getCalendarForCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Occasions/OccasionEmailConfig.php::App\\Models\\Occasions\\OccasionEmailConfig::getOrCreateForCompany",
        "fqmn": "App\\Models\\Occasions\\OccasionEmailConfig@getOrCreateForCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Occasions/OccasionEmailEvent.php::App\\Models\\Occasions\\OccasionEmailEvent::createEvent",
        "fqmn": "App\\Models\\Occasions\\OccasionEmailEvent@createEvent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Order.php::App\\Models\\Order::derivePrimaryMethod",
        "fqmn": "App\\Models\\Order@derivePrimaryMethod",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Order.php::App\\Models\\Order::generateNextNumber",
        "fqmn": "App\\Models\\Order@generateNextNumber",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Privacy/DataSubjectRequest.php::App\\Models\\Privacy\\DataSubjectRequest::company",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@company",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Privacy/DataSubjectRequest.php::App\\Models\\Privacy\\DataSubjectRequest::processedByUser",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@processedByUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Privacy/DataSubjectRequest.php::App\\Models\\Privacy\\DataSubjectRequest::user",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@user",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Product.php::App\\Models\\Product::category",
        "fqmn": "App\\Models\\Product@category",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Product.php::App\\Models\\Product::computePointsCost",
        "fqmn": "App\\Models\\Product@computePointsCost",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Promotion/SalaryBand.php::App\\Models\\Promotion\\SalaryBand::findCurrentBand",
        "fqmn": "App\\Models\\Promotion\\SalaryBand@findCurrentBand",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Rfq.php::App\\Models\\Rfq::generateNumber",
        "fqmn": "App\\Models\\Rfq@generateNumber",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/Task.php::App\\Models\\Task::target",
        "fqmn": "App\\Models\\Task@target",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/User.php::App\\Models\\User::companies",
        "fqmn": "App\\Models\\User@companies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/ZohoModifiedSinceCursorState.php::App\\Models\\ZohoModifiedSinceCursorState::advanceTo",
        "fqmn": "App\\Models\\ZohoModifiedSinceCursorState@advanceTo",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Mode",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Models/ZohoModifiedSinceCursorState.php::App\\Models\\ZohoModifiedSinceCursorState::current",
        "fqmn": "App\\Models\\ZohoModifiedSinceCursorState@current",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/AccountingDriftPolicy.php::App\\Policies\\AccountingDriftPolicy::deleteAny",
        "fqmn": "App\\Policies\\AccountingDriftPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::bulkAction",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::canViewAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::deleteAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/CompanyPolicy.php::App\\Policies\\CompanyPolicy::resumeDunning",
        "fqmn": "App\\Policies\\CompanyPolicy@resumeDunning",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::reactivate",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@reactivate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::revoke",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@revoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::canViewAny",
        "fqmn": "App\\Policies\\DeliveryPolicy@canViewAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/DisputePolicy.php::App\\Policies\\DisputePolicy::viewWidget",
        "fqmn": "App\\Policies\\DisputePolicy@viewWidget",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/DocumentFieldPolicy.php::App\\Policies\\DocumentFieldPolicy::accept",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@accept",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::comment",
        "fqmn": "App\\Policies\\DocumentPolicy@comment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::manageShares",
        "fqmn": "App\\Policies\\DocumentPolicy@manageShares",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::review",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@review",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::deleteAny",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::deleteAny",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::deleteAny",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::deleteAny",
        "fqmn": "App\\Policies\\PlanVersionPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/ProductPolicy.php::App\\Policies\\ProductPolicy::deleteAny",
        "fqmn": "App\\Policies\\ProductPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::deleteAny",
        "fqmn": "App\\Policies\\RecognitionPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::deleteAny",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::deleteAny",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::deleteAny",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::approve",
        "fqmn": "App\\Policies\\TaskPolicy@approve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::cancel",
        "fqmn": "App\\Policies\\TaskPolicy@cancel",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::manage",
        "fqmn": "App\\Policies\\TaskPolicy@manage",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::updateStatusAsReceiver",
        "fqmn": "App\\Policies\\TaskPolicy@updateStatusAsReceiver",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::detach",
        "fqmn": "App\\Policies\\UserPolicy@detach",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::deleteAny",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Poli",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Policies/ZohoSideEditPolicy.php::App\\Policies\\ZohoSideEditPolicy::deleteAny",
        "fqmn": "App\\Policies\\ZohoSideEditPolicy@deleteAny",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Scop",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Scopes/CompanyScope.php::App\\Scopes\\CompanyScope::withTenant",
        "fqmn": "App\\Scopes\\CompanyScope@withTenant",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Ai/ActionOrchestrator.php::App\\Services\\Ai\\ActionOrchestrator::__construct",
        "fqmn": "App\\Services\\Ai\\ActionOrchestrator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Ai/ActionOrchestrator.php::App\\Services\\Ai\\ActionOrchestrator::execute",
        "fqmn": "App\\Services\\Ai\\ActionOrchestrator@execute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Ai/AiActionResolver.php::App\\Services\\Ai\\AiActionResolver::resolve",
        "fqmn": "App\\Services\\Ai\\AiActionResolver@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Ai/AiActionResolver.php::App\\Services\\Ai\\AiActionResolver::resolveMany",
        "fqmn": "App\\Services\\Ai\\AiActionResolver@resolveMany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Ai/ResolvedAiAction.php::App\\Services\\Ai\\ResolvedAiAction::__construct",
        "fqmn": "App\\Services\\Ai\\ResolvedAiAction@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Ai/ResolvedAiAction.php::App\\Services\\Ai\\ResolvedAiAction::toArray",
        "fqmn": "App\\Services\\Ai\\ResolvedAiAction@toArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::__construct",
        "fqmn": "App\\Services\\AiClient@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::referralInsights",
        "fqmn": "App\\Services\\AiClient@referralInsights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::summarizeRecognitionKpis",
        "fqmn": "App\\Services\\AiClient@summarizeRecognitionKpis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::redactText",
        "fqmn": "App\\Services\\AiSanitizer@redactText",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::sanitizeLinkedin",
        "fqmn": "App\\Services\\AiSanitizer@sanitizeLinkedin",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::tokenMapEntities",
        "fqmn": "App\\Services\\AiSanitizer@tokenMapEntities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getCompanyAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getCompanyAnalytics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getCultureHeatmap",
        "fqmn": "App\\Services\\AnalyticsService@getCultureHeatmap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getGlobalAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getGlobalAnalytics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getGlobalCultureHeatmap",
        "fqmn": "App\\Services\\AnalyticsService@getGlobalCultureHeatmap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getTeamAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getTeamAnalytics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::cleanupOldLogs",
        "fqmn": "App\\Services\\AuditService@cleanupOldLogs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::getAuditSummary",
        "fqmn": "App\\Services\\AuditService@getAuditSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::log",
        "fqmn": "App\\Services\\AuditService@log",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logContactOperation",
        "fqmn": "App\\Services\\AuditService@logContactOperation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logError",
        "fqmn": "App\\Services\\AuditService@logError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logInvoiceCreation",
        "fqmn": "App\\Services\\AuditService@logInvoiceCreation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logInvoiceSent",
        "fqmn": "App\\Services\\AuditService@logInvoiceSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logPaymentReconciliation",
        "fqmn": "App\\Services\\AuditService@logPaymentReconciliation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logProductSync",
        "fqmn": "App\\Services\\AuditService@logProductSync",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logPurchaseOrderCreation",
        "fqmn": "App\\Services\\AuditService@logPurchaseOrderCreation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logSystemOperation",
        "fqmn": "App\\Services\\AuditService@logSystemOperation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logValidationFailure",
        "fqmn": "App\\Services\\AuditService@logValidationFailure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logZohoOperation",
        "fqmn": "App\\Services\\AuditService@logZohoOperation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::searchAuditLogs",
        "fqmn": "App\\Services\\AuditService@searchAuditLogs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemAction.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemAction::execute",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemAction@execute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemResult.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemResult::__construct",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemResult.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemResult::toArray",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::emitEvent",
        "fqmn": "App\\Services\\AutomationEngine@emitEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::handleEvent",
        "fqmn": "App\\Services\\AutomationEngine@handleEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::processPendingEvents",
        "fqmn": "App\\Services\\AutomationEngine@processPendingEvents",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::runAutomation",
        "fqmn": "App\\Services\\AutomationEngine@runAutomation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::runCron",
        "fqmn": "App\\Services\\AutomationEngine@runCron",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/AutomationEngine.php::App\\Services\\AutomationEngine::runNow",
        "fqmn": "App\\Services\\AutomationEngine@runNow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getCultureMomentumIndex",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getCultureMomentumIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getCultureVolatility",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getCultureVolatility",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getSilentDaysMap",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getSilentDaysMap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::__construct",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateCliqueCandidates",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateCliqueCandidates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateRecognitionEquityIndex",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateRecognitionEquityIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateSiloScoreByDepartment",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateSiloScoreByDepartment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getCliqueCandidates",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getRecognitionEquityIndex",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getRecognitionEquityIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getSiloScoreByDepartment",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getSiloScoreByDepartment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/HabitAnalyticsService.php::App\\Services\\Awareness\\HabitAnalyticsService::getStreakHealth",
        "fqmn": "App\\Services\\Awareness\\HabitAnalyticsService@getStreakHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/HabitAnalyticsService.php::App\\Services\\Awareness\\HabitAnalyticsService::getTeamConsistencyIndex",
        "fqmn": "App\\Services\\Awareness\\HabitAnalyticsService@getTeamConsistencyIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::__construct",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::isLowSpecificity",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@isLowSpecificity",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::toArray",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::capsRatio",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@capsRatio",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::charCount",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@charCount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::countExclamationRuns",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@countExclamationRuns",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::countKashidaRuns",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@countKashidaRuns",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::countRepeatedCharRuns",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@countRepeatedCharRuns",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::isEmojiOnly",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@isEmojiOnly",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::matchesAnyGenericPhrase",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyGenericPhrase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::matchesAnyIntensifierPhrase",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyIntensifierPhrase",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::score",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@score",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::tashkeelDensity",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@tashkeelDensity",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Awareness/MessageIntensityScorer.php::App\\Services\\Awareness\\MessageIntensityScorer::wordCount",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@wordCount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/ProductivityLinkService.php::App\\Services\\Awareness\\ProductivityLinkService::getUnderRecognizedHighProducers",
        "fqmn": "App\\Services\\Awareness\\ProductivityLinkService@getUnderRecognizedHighProducers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getAfterHoursStressSignal",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getAfterHoursStressSignal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getLowSpecificityFlags",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getLowSpecificityFlags",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getPolicyAbuseWatch",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getPolicyAbuseWatch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getDecliningValues",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getImpactScores",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getImpactScores",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getRisingValues",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getRisingValues",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::collectForView",
        "fqmn": "App\\Services\\BadgeOkrService@collectForView",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getBadgeRoiMetrics",
        "fqmn": "App\\Services\\BadgeOkrService@getBadgeRoiMetrics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getResultOrientedTargets",
        "fqmn": "App\\Services\\BadgeOkrService@getResultOrientedTargets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getRoiTimeline",
        "fqmn": "App\\Services\\BadgeOkrService@getRoiTimeline",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getTaskOrientedTargets",
        "fqmn": "App\\Services\\BadgeOkrService@getTaskOrientedTargets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getTeamProgress",
        "fqmn": "App\\Services\\BadgeOkrService@getTeamProgress",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::awardBadge",
        "fqmn": "App\\Services\\BadgeService@awardBadge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::checkAndAwardBadges",
        "fqmn": "App\\Services\\BadgeService@checkAndAwardBadges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::createDefaultBadges",
        "fqmn": "App\\Services\\BadgeService@createDefaultBadges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::getAvailableBadges",
        "fqmn": "App\\Services\\BadgeService@getAvailableBadges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::getUserBadgeStats",
        "fqmn": "App\\Services\\BadgeService@getUserBadgeStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::revokeBadge",
        "fqmn": "App\\Services\\BadgeService@revokeBadge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::createTarget",
        "fqmn": "App\\Services\\BadgeTargetService@createTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::getUserDashboardStats",
        "fqmn": "App\\Services\\BadgeTargetService@getUserDashboardStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::getUserTargets",
        "fqmn": "App\\Services\\BadgeTargetService@getUserTargets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::updateAllTargetProgress",
        "fqmn": "App\\Services\\BadgeTargetService@updateAllTargetProgress",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BadgeTargetService.php::App\\Services\\BadgeTargetService::updateTargetProgress",
        "fqmn": "App\\Services\\BadgeTargetService@updateTargetProgress",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BehaviorDriversService.php::App\\Services\\BehaviorDriversService::compute",
        "fqmn": "App\\Services\\BehaviorDriversService@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Billing/BillingAmountCalculator.php::App\\Services\\Billing\\BillingAmountCalculator::calculateFromBase",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Billing/BillingAmountCalculator.php::App\\Services\\Billing\\BillingAmountCalculator::calculateTotal",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@calculateTotal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Billing/LedgerBackSyncService.php::App\\Services\\Billing\\LedgerBackSyncService::apply",
        "fqmn": "App\\Services\\Billing\\LedgerBackSyncService@apply",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Billing/RevenueRecognitionRefundAdjuster.php::App\\Services\\Billing\\RevenueRecognitionRefundAdjuster::adjustForRefund",
        "fqmn": "App\\Services\\Billing\\RevenueRecognitionRefundAdjuster@adjustForRefund",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Billing/SeatCountService.php::App\\Services\\Billing\\SeatCountService::getBillableUnitCount",
        "fqmn": "App\\Services\\Billing\\SeatCountService@getBillableUnitCount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Billing/SeatHighWaterService.php::App\\Services\\Billing\\SeatHighWaterService::chargeIfOverHighWater",
        "fqmn": "App\\Services\\Billing\\SeatHighWaterService@chargeIfOverHighWater",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Billing/SeatHighWaterService.php::App\\Services\\Billing\\SeatHighWaterService::compute",
        "fqmn": "App\\Services\\Billing\\SeatHighWaterService@compute",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Billing/SeatHighWaterService.php::App\\Services\\Billing\\SeatHighWaterService::seatCostPerCycleHalalas",
        "fqmn": "App\\Services\\Billing\\SeatHighWaterService@seatCostPerCycleHalalas",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BotMan/BotHelpService.php::App\\Services\\BotMan\\BotHelpService::replyFor",
        "fqmn": "App\\Services\\BotMan\\BotHelpService@replyFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/BotMan/BotHelpService.php::App\\Services\\BotMan\\BotHelpService::replyForWithContext",
        "fqmn": "App\\Services\\BotMan\\BotHelpService@replyForWithContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadMetricsService.php::App\\Services\\Chat\\ThreadMetricsService::snapshot",
        "fqmn": "App\\Services\\Chat\\ThreadMetricsService@snapshot",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::dispatchNewMessageNotifications",
        "fqmn": "App\\Services\\Chat\\ThreadService@dispatchNewMessageNotifications",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::getReplies",
        "fqmn": "App\\Services\\Chat\\ThreadService@getReplies",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::isMutedFor",
        "fqmn": "App\\Services\\Chat\\ThreadService@isMutedFor",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::markRead",
        "fqmn": "App\\Services\\Chat\\ThreadService@markRead",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::mutedUserIds",
        "fqmn": "App\\Services\\Chat\\ThreadService@mutedUserIds",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::setMuted",
        "fqmn": "App\\Services\\Chat\\ThreadService@setMuted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::unreadCount",
        "fqmn": "App\\Services\\Chat\\ThreadService@unreadCount",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::unreadCountsBulk",
        "fqmn": "App\\Services\\Chat\\ThreadService@unreadCountsBulk",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/CityFromIp.php::App\\Services\\CityFromIp::for",
        "fqmn": "App\\Services\\CityFromIp@for",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchDepartments",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchDepartments",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchTeams",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchTeams",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchUsers",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchUsers",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::getCompanyHealth",
        "fqmn": "App\\Services\\CompanyInsightsService@getCompanyHealth",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::getPerformanceTrends",
        "fqmn": "App\\Services\\CompanyInsightsService@getPerformanceTrends",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::resolve",
        "fqmn": "App\\Services\\CompanyInsightsService@resolve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/Ai/AiSummaryPayloadBuilder.php::App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/Ai/OpenAiSummaryClient.php::App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient::generateSummaries",
        "fqmn": "App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient@generateSummaries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomKpiService.php::App\\Services\\ControlRoom\\ControlRoomKpiService::buildExecutiveFallback",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomKpiService@buildExecutiveFallback",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomKpiService.php::App\\Services\\ControlRoom\\ControlRoomKpiService::buildKpiContext",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomKpiService@buildKpiContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::formatValue",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@formatValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::getPriorSummary",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@getPriorSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::getSummary",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@getSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/CoverageStatsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::all",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@all",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::builder",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@builder",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::clearCache",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::compose",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@compose",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::has",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@has",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownRegistry.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry::renderer",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@renderer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/ManagerBudgetTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/NarrativePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder::hasNarrative",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/ParticipationSegmentsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RankedListTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RankedListTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@hasShape",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RateStatsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder@hasShape",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/TrendPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/TrendPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@hasShape",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/GlossaryComposer.php::App\\Services\\ControlRoom\\GlossaryComposer::resolveActiveCompanyId",
        "fqmn": "App\\Services\\ControlRoom\\GlossaryComposer@resolveActiveCompanyId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/Metrics/ScopeFilter.php::App\\Services\\ControlRoom\\Metrics\\ScopeFilter::resolveUserIds",
        "fqmn": "App\\Services\\ControlRoom\\Metrics\\ScopeFilter@resolveUserIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/ControlRoom/ParticipationSegmentResolver.php::App\\Services\\ControlRoom\\ParticipationSegmentResolver::resolveSegmentActivity",
        "fqmn": "App\\Services\\ControlRoom\\ParticipationSegmentResolver@resolveSegmentActivity",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/ScopeResolver.php::App\\Services\\ControlRoom\\ScopeResolver::resolve",
        "fqmn": "App\\Services\\ControlRoom\\ScopeResolver@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/BaselineBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/ConfidenceEstimator.php::App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator::checkAdequacy",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator@checkAdequacy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/ConfidenceEstimator.php::App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator::estimate",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator@estimate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/ConfidenceEstimator.php::App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator::scoreToLevel",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\ConfidenceEstimator@scoreToLevel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/DataAggregator.php::App\\Services\\ControlRoom\\TalentInsights\\DataAggregator::aggregate",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\DataAggregator@aggregate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/EngagementRisk.php::App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk::computeV2",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk@computeV2",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/FeatureBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/FeatureBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder::preprocess",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@preprocess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/LeadershipScore.php::App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore::compute",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::clamp01",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::mad",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::median",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@median",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::percentileRank",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileRank",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::percentileValue",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::robustZScore",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@robustZScore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::toPercentage",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@toPercentage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::weightedSum",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@weightedSum",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::winsorize",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@winsorize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalRiskModel.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalRiskModel::run",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalRiskModel@run",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::formatForDisplay",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@formatForDisplay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::getAtRiskCount",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskCount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::getAtRiskList",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskList",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::isExcludedFromDisplay",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@isExcludedFromDisplay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::resolve",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::toLegacyFormat",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@toLegacyFormat",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TimeWindowHelper.php::App\\Services\\ControlRoom\\TimeWindowHelper::detectWindowType",
        "fqmn": "App\\Services\\ControlRoom\\TimeWindowHelper@detectWindowType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoom/TimeWindowHelper.php::App\\Services\\ControlRoom\\TimeWindowHelper::resolveWindow",
        "fqmn": "App\\Services\\ControlRoom\\TimeWindowHelper@resolveWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getBadgeEarnersLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getParticipantLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getParticipantLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getPointsGainersLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getPointsGainersLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getReceiverLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getReceiverLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getTaskCompletorsLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getTaskCompletorsLeaderboard",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::applyAdvanceToInvoice",
        "fqmn": "App\\Services\\CreditLedgerService@applyAdvanceToInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::issueCustomerAdvance",
        "fqmn": "App\\Services\\CreditLedgerService@issueCustomerAdvance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::issueDowngradeCredit",
        "fqmn": "App\\Services\\CreditLedgerService@issueDowngradeCredit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/CulturalMomentumService.php::App\\Services\\CulturalMomentumService::compute",
        "fqmn": "App\\Services\\CulturalMomentumService@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/CultureMetricsService.php::App\\Services\\CultureMetricsService::getCulturalMomentum",
        "fqmn": "App\\Services\\CultureMetricsService@getCulturalMomentum",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/CultureMetricsService.php::App\\Services\\CultureMetricsService::getTeamCollaboration",
        "fqmn": "App\\Services\\CultureMetricsService@getTeamCollaboration",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/BadgesPieComposer.php::App\\Services\\Dashboard\\BadgesPieComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\BadgesPieComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/CulturePulseFeedComposer.php::App\\Services\\Dashboard\\CulturePulseFeedComposer::__construct",
        "fqmn": "App\\Services\\Dashboard\\CulturePulseFeedComposer@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/CulturePulseFeedComposer.php::App\\Services\\Dashboard\\CulturePulseFeedComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\CulturePulseFeedComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/LeaderboardSnapshotComposer.php::App\\Services\\Dashboard\\LeaderboardSnapshotComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\LeaderboardSnapshotComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/PerformerRankingComposer.php::App\\Services\\Dashboard\\PerformerRankingComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\PerformerRankingComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/RecognitionPointsComposer.php::App\\Services\\Dashboard\\RecognitionPointsComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\RecognitionPointsComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/TaskCompletersComposer.php::App\\Services\\Dashboard\\TaskCompletersComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TaskCompletersComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/TasksSummaryComposer.php::App\\Services\\Dashboard\\TasksSummaryComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TasksSummaryComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/TeamPerformanceComposer.php::App\\Services\\Dashboard\\TeamPerformanceComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TeamPerformanceComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/UpcomingAnniversariesComposer.php::App\\Services\\Dashboard\\UpcomingAnniversariesComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\UpcomingAnniversariesComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/UpcomingBirthdaysComposer.php::App\\Services\\Dashboard\\UpcomingBirthdaysComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\UpcomingBirthdaysComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Dashboard/ValuesPieComposer.php::App\\Services\\Dashboard\\ValuesPieComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\ValuesPieComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DataQualityService.php::App\\Services\\DataQualityService::shouldShowWarning",
        "fqmn": "App\\Services\\DataQualityService@shouldShowWarning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DiDAnalysisService.php::App\\Services\\DiDAnalysisService::calculateRetentionDiD",
        "fqmn": "App\\Services\\DiDAnalysisService@calculateRetentionDiD",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/DigestSourceHealthReporter.php::App\\Services\\Digest\\DigestSourceHealthReporter::aggregate",
        "fqmn": "App\\Services\\Digest\\DigestSourceHealthReporter@aggregate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/GroundingPromptAppender.php::App\\Services\\Digest\\GroundingPromptAppender::build",
        "fqmn": "App\\Services\\Digest\\GroundingPromptAppender@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/CachedDigestSourceFacade.php::App\\Services\\Digest\\Sources\\CachedDigestSourceFacade::warm",
        "fqmn": "App\\Services\\Digest\\Sources\\CachedDigestSourceFacade@warm",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/CityResolver.php::App\\Services\\Digest\\Sources\\CityResolver::resolve",
        "fqmn": "App\\Services\\Digest\\Sources\\CityResolver@resolve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/CityResolver.php::App\\Services\\Digest\\Sources\\CityResolver::resolveOrCapital",
        "fqmn": "App\\Services\\Digest\\Sources\\CityResolver@resolveOrCapital",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/DigestSourceOrchestrator.php::App\\Services\\Digest\\Sources\\DigestSourceOrchestrator::__construct",
        "fqmn": "App\\Services\\Digest\\Sources\\DigestSourceOrchestrator@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/DigestSourceOrchestrator.php::App\\Services\\Digest\\Sources\\DigestSourceOrchestrator::bundleFor",
        "fqmn": "App\\Services\\Digest\\Sources\\DigestSourceOrchestrator@bundleFor",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::__construct",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::empty",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@empty",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::isEmpty",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@isEmpty",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::toArray",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@toArray",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::__construct",
        "fqmn": "App\\Services\\DigestGenerationService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::approveDigest",
        "fqmn": "App\\Services\\DigestGenerationService@approveDigest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::bulkApproveDigests",
        "fqmn": "App\\Services\\DigestGenerationService@bulkApproveDigests",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::generateDigestBatch",
        "fqmn": "App\\Services\\DigestGenerationService@generateDigestBatch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::generateDigestForEmployee",
        "fqmn": "App\\Services\\DigestGenerationService@generateDigestForEmployee",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::generateDigestsForCompany",
        "fqmn": "App\\Services\\DigestGenerationService@generateDigestsForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::getDigestStats",
        "fqmn": "App\\Services\\DigestGenerationService@getDigestStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::rejectDigest",
        "fqmn": "App\\Services\\DigestGenerationService@rejectDigest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::sendApprovedDigests",
        "fqmn": "App\\Services\\DigestGenerationService@sendApprovedDigests",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DigestGenerationService.php::App\\Services\\DigestGenerationService::testDigestGeneration",
        "fqmn": "App\\Services\\DigestGenerationService@testDigestGeneration",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::evaluateMultiSubscriptionDunning",
        "fqmn": "App\\Services\\DunningService@evaluateMultiSubscriptionDunning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::isCompanyDunningPaused",
        "fqmn": "App\\Services\\DunningService@isCompanyDunningPaused",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::processScheduledAttempt",
        "fqmn": "App\\Services\\DunningService@processScheduledAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::resumeMultiSubscriptionDunning",
        "fqmn": "App\\Services\\DunningService@resumeMultiSubscriptionDunning",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::runAttempt",
        "fqmn": "App\\Services\\DunningService@runAttempt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/DunningService.php::App\\Services\\DunningService::scheduleRetry",
        "fqmn": "App\\Services\\DunningService@scheduleRetry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Email/CompanyMailer.php::App\\Services\\Email\\CompanyMailer::__construct",
        "fqmn": "App\\Services\\Email\\CompanyMailer@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Email/CompanyMailer.php::App\\Services\\Email\\CompanyMailer::sendHtml",
        "fqmn": "App\\Services\\Email\\CompanyMailer@sendHtml",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::generateSampleData",
        "fqmn": "App\\Services\\EmailTemplateService@generateSampleData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::getAllowedPlaceholders",
        "fqmn": "App\\Services\\EmailTemplateService@getAllowedPlaceholders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::renderTemplate",
        "fqmn": "App\\Services\\EmailTemplateService@renderTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::validateTemplateContent",
        "fqmn": "App\\Services\\EmailTemplateService@validateTemplateContent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EmployeeWellnessService.php::App\\Services\\EmployeeWellnessService::getSatisfactionMetrics",
        "fqmn": "App\\Services\\EmployeeWellnessService@getSatisfactionMetrics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EmployeeWellnessService.php::App\\Services\\EmployeeWellnessService::getWellnessIndex",
        "fqmn": "App\\Services\\EmployeeWellnessService@getWellnessIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EngagementHealthService.php::App\\Services\\EngagementHealthService::scoreEhs",
        "fqmn": "App\\Services\\EngagementHealthService@scoreEhs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/EngagementHealthService.php::App\\Services\\EngagementHealthService::summaries",
        "fqmn": "App\\Services\\EngagementHealthService@summaries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::canAddSeat",
        "fqmn": "App\\Services\\Entitlements@canAddSeat",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::ensure",
        "fqmn": "App\\Services\\Entitlements@ensure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::hasActiveSubscription",
        "fqmn": "App\\Services\\Entitlements@hasActiveSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::hasFeature",
        "fqmn": "App\\Services\\Entitlements@hasFeature",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Entitlements.php::App\\Services\\Entitlements::subscriptionStatus",
        "fqmn": "App\\Services\\Entitlements@subscriptionStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ExecutiveOverviewService.php::App\\Services\\ExecutiveOverviewService::__construct",
        "fqmn": "App\\Services\\ExecutiveOverviewService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ExecutiveOverviewService.php::App\\Services\\ExecutiveOverviewService::build",
        "fqmn": "App\\Services\\ExecutiveOverviewService@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::build",
        "fqmn": "App\\Services\\ExecutiveSummaryService@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::buildKpi",
        "fqmn": "App\\Services\\ExecutiveSummaryService@buildKpi",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::buildOkr",
        "fqmn": "App\\Services\\ExecutiveSummaryService@buildOkr",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/FcmService.php::App\\Services\\FcmService::__construct",
        "fqmn": "App\\Services\\FcmService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/FcmService.php::App\\Services\\FcmService::send",
        "fqmn": "App\\Services\\FcmService@send",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/FeatureGateService.php::App\\Services\\FeatureGateService::__construct",
        "fqmn": "App\\Services\\FeatureGateService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/FeatureGateService.php::App\\Services\\FeatureGateService::check",
        "fqmn": "App\\Services\\FeatureGateService@check",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ForecastComputationService.php::App\\Services\\ForecastComputationService::build",
        "fqmn": "App\\Services\\ForecastComputationService@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ForecastService.php::App\\Services\\ForecastService::__construct",
        "fqmn": "App\\Services\\ForecastService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ForecastService.php::App\\Services\\ForecastService::getForecastWidgets",
        "fqmn": "App\\Services\\ForecastService@getForecastWidgets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::__construct",
        "fqmn": "App\\Services\\GPTService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::chatJson",
        "fqmn": "App\\Services\\GPTService@chatJson",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::chatPlain",
        "fqmn": "App\\Services\\GPTService@chatPlain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::estimateCost",
        "fqmn": "App\\Services\\GPTService@estimateCost",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::generateDigestContent",
        "fqmn": "App\\Services\\GPTService@generateDigestContent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::generateReferralInsightsWithFile",
        "fqmn": "App\\Services\\GPTService@generateReferralInsightsWithFile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::testConnection",
        "fqmn": "App\\Services\\GPTService@testConnection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::uploadFile",
        "fqmn": "App\\Services\\GPTService@uploadFile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Guardrails/CompanyAdequacyService.php::App\\Services\\Guardrails\\CompanyAdequacyService::assess",
        "fqmn": "App\\Services\\Guardrails\\CompanyAdequacyService@assess",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Guardrails/CompanyAdequacyService.php::App\\Services\\Guardrails\\CompanyAdequacyService::isAdequate",
        "fqmn": "App\\Services\\Guardrails\\CompanyAdequacyService@isAdequate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/ConfidenceScore.php::App\\Services\\Guardrails\\ConfidenceScore::clampStatus",
        "fqmn": "App\\Services\\Guardrails\\ConfidenceScore@clampStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/ConfidenceScore.php::App\\Services\\Guardrails\\ConfidenceScore::compute",
        "fqmn": "App\\Services\\Guardrails\\ConfidenceScore@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::filterNewHires",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@filterNewHires",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getEligibleUserIds",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getEligibleUserIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getGraceDays",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getGraceDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getOnboardingCohort",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getOnboardingCohort",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::isNewHire",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@isNewHire",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/InvestigationEligibilityService.php::App\\Services\\Guardrails\\InvestigationEligibilityService::computeRelativePerformance",
        "fqmn": "App\\Services\\Guardrails\\InvestigationEligibilityService@computeRelativePerformance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/InvestigationEligibilityService.php::App\\Services\\Guardrails\\InvestigationEligibilityService::evaluateUsers",
        "fqmn": "App\\Services\\Guardrails\\InvestigationEligibilityService@evaluateUsers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/WidgetGuardrails.php::App\\Services\\Guardrails\\WidgetGuardrails::buildContext",
        "fqmn": "App\\Services\\Guardrails\\WidgetGuardrails@buildContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/WidgetGuardrails.php::App\\Services\\Guardrails\\WidgetGuardrails::filterNewHires",
        "fqmn": "App\\Services\\Guardrails\\WidgetGuardrails@filterNewHires",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/WidgetGuardrails.php::App\\Services\\Guardrails\\WidgetGuardrails::insufficientDataPayload",
        "fqmn": "App\\Services\\Guardrails\\WidgetGuardrails@insufficientDataPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Guardrails/WidgetGuardrails.php::App\\Services\\Guardrails\\WidgetGuardrails::wrapPayload",
        "fqmn": "App\\Services\\Guardrails\\WidgetGuardrails@wrapPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::buildSystemPromptGlobal",
        "fqmn": "App\\Services\\HelpEngine@buildSystemPromptGlobal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::composeGlobal",
        "fqmn": "App\\Services\\HelpEngine@composeGlobal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::detectLocaleFromMessage",
        "fqmn": "App\\Services\\HelpEngine@detectLocaleFromMessage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::detectRewardsProgramIntent",
        "fqmn": "App\\Services\\HelpEngine@detectRewardsProgramIntent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::replyForDM",
        "fqmn": "App\\Services\\HelpEngine@replyForDM",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/AutomationScorer.php::App\\Services\\HireReadiness\\AutomationScorer::score",
        "fqmn": "App\\Services\\HireReadiness\\AutomationScorer@score",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/AutomationScorer.php::App\\Services\\HireReadiness\\AutomationScorer::scorePendingLines",
        "fqmn": "App\\Services\\HireReadiness\\AutomationScorer@scorePendingLines",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/CrossTenantAggregator.php::App\\Services\\HireReadiness\\CrossTenantAggregator::enrichMetric",
        "fqmn": "App\\Services\\HireReadiness\\CrossTenantAggregator@enrichMetric",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/CrossTenantAggregator.php::App\\Services\\HireReadiness\\CrossTenantAggregator::lookup",
        "fqmn": "App\\Services\\HireReadiness\\CrossTenantAggregator@lookup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/CrossTenantAggregator.php::App\\Services\\HireReadiness\\CrossTenantAggregator::rebuild",
        "fqmn": "App\\Services\\HireReadiness\\CrossTenantAggregator@rebuild",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DistributionPoller.php::App\\Services\\HireReadiness\\DistributionPoller::openPoll",
        "fqmn": "App\\Services\\HireReadiness\\DistributionPoller@openPoll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DistributionPoller.php::App\\Services\\HireReadiness\\DistributionPoller::timeoutExpiredResponses",
        "fqmn": "App\\Services\\HireReadiness\\DistributionPoller@timeoutExpiredResponses",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/AssessmentWindow.php::App\\Services\\HireReadiness\\DTO\\AssessmentWindow::buckets",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\AssessmentWindow@buckets",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::__construct",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::isEmpty",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@isEmpty",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::size",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@size",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@toArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::__construct",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::excluded",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@excluded",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::isIncluded",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isIncluded",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::isSignificant",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isSignificant",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@toArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::__construct",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::includedMetrics",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@includedMetrics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::metric",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@metric",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@toArray",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireOutcomeTracker.php::App\\Services\\HireReadiness\\HireOutcomeTracker::recordResponse",
        "fqmn": "App\\Services\\HireReadiness\\HireOutcomeTracker@recordResponse",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireOutcomeTracker.php::App\\Services\\HireReadiness\\HireOutcomeTracker::schedule",
        "fqmn": "App\\Services\\HireReadiness\\HireOutcomeTracker@schedule",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireOutcomeTracker.php::App\\Services\\HireReadiness\\HireOutcomeTracker::sweepDue",
        "fqmn": "App\\Services\\HireReadiness\\HireOutcomeTracker@sweepDue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::approve",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@approve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::createApprovalChain",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@createApprovalChain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::pendingApprovalFor",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@pendingApprovalFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestApprover.php::App\\Services\\HireReadiness\\HireRequestApprover::reject",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestApprover@reject",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::closePollAndAssess",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@closePollAndAssess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::decomposeJd",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@decomposeJd",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::generateNarrative",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@generateNarrative",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::submitForApproval",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@submitForApproval",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::submitForPoll",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@submitForPoll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPublisher.php::App\\Services\\HireReadiness\\HireRequestPublisher::publish",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPublisher@publish",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/JdDecomposer.php::App\\Services\\HireReadiness\\JdDecomposer::decompose",
        "fqmn": "App\\Services\\HireReadiness\\JdDecomposer@decompose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/JdDecomposer.php::App\\Services\\HireReadiness\\JdDecomposer::decomposeAndPersist",
        "fqmn": "App\\Services\\HireReadiness\\JdDecomposer@decomposeAndPersist",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/PeerSetResolver.php::App\\Services\\HireReadiness\\PeerSetResolver::resolve",
        "fqmn": "App\\Services\\HireReadiness\\PeerSetResolver@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/PromotionMatcher.php::App\\Services\\HireReadiness\\PromotionMatcher::matchPendingLines",
        "fqmn": "App\\Services\\HireReadiness\\PromotionMatcher@matchPendingLines",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/RequesterTrackRecord.php::App\\Services\\HireReadiness\\RequesterTrackRecord::forUser",
        "fqmn": "App\\Services\\HireReadiness\\RequesterTrackRecord@forUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/AttritionRisk.php::App\\Services\\HireReadiness\\Signals\\AttritionRisk::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\AttritionRisk@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/AttritionRisk.php::App\\Services\\HireReadiness\\Signals\\AttritionRisk::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\AttritionRisk@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/BadgeDistribution.php::App\\Services\\HireReadiness\\Signals\\BadgeDistribution::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/BadgeDistribution.php::App\\Services\\HireReadiness\\Signals\\BadgeDistribution::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/GiniCoefficient.php::App\\Services\\HireReadiness\\Signals\\GiniCoefficient::gini",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\GiniCoefficient@gini",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/HeadcountTrend.php::App\\Services\\HireReadiness\\Signals\\HeadcountTrend::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/HeadcountTrend.php::App\\Services\\HireReadiness\\Signals\\HeadcountTrend::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/ReactionDepth.php::App\\Services\\HireReadiness\\Signals\\ReactionDepth::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/ReactionDepth.php::App\\Services\\HireReadiness\\Signals\\ReactionDepth::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/RecentHireFlag.php::App\\Services\\HireReadiness\\Signals\\RecentHireFlag::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecentHireFlag@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/RecentHireFlag.php::App\\Services\\HireReadiness\\Signals\\RecentHireFlag::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecentHireFlag@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/RecognitionVelocity.php::App\\Services\\HireReadiness\\Signals\\RecognitionVelocity::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/RecognitionVelocity.php::App\\Services\\HireReadiness\\Signals\\RecognitionVelocity::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskCycleTime.php::App\\Services\\HireReadiness\\Signals\\TaskCycleTime::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskCycleTime.php::App\\Services\\HireReadiness\\Signals\\TaskCycleTime::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskThroughput.php::App\\Services\\HireReadiness\\Signals\\TaskThroughput::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskThroughput.php::App\\Services\\HireReadiness\\Signals\\TaskThroughput::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/TenureMix.php::App\\Services\\HireReadiness\\Signals\\TenureMix::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Signals/TenureMix.php::App\\Services\\HireReadiness\\Signals\\TenureMix::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@key",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/ConfidenceClassifier.php::App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier::classify",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier@classify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/CoverageScore.php::App\\Services\\HireReadiness\\Statistics\\CoverageScore::compute",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\CoverageScore@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/CoverageScore.php::App\\Services\\HireReadiness\\Statistics\\CoverageScore::rollupConfidence",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\CoverageScore@rollupConfidence",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::coefficientOfVariation",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::confidenceInterval95",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@confidenceInterval95",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::stddev",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@stddev",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/PercentileRank.php::App\\Services\\HireReadiness\\Statistics\\PercentileRank::compute",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\PercentileRank@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/SignificanceTest.php::App\\Services\\HireReadiness\\Statistics\\SignificanceTest::againstPeerMean",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\SignificanceTest@againstPeerMean",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/Statistics/TrendAnalysis.php::App\\Services\\HireReadiness\\Statistics\\TrendAnalysis::ols",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\TrendAnalysis@ols",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/TeamHiringHistory.php::App\\Services\\HireReadiness\\TeamHiringHistory::forTeam",
        "fqmn": "App\\Services\\HireReadiness\\TeamHiringHistory@forTeam",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/TeamSignalStatistics.php::App\\Services\\HireReadiness\\TeamSignalStatistics::compute",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/HireReadiness/TeamSignalStatistics.php::App\\Services\\HireReadiness\\TeamSignalStatistics::signals",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@signals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::enrichContextWithExternalData",
        "fqmn": "App\\Services\\InferenceEngine@enrichContextWithExternalData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::generateContextProfile",
        "fqmn": "App\\Services\\InferenceEngine@generateContextProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::validateContextProfile",
        "fqmn": "App\\Services\\InferenceEngine@validateContextProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InsightComposer.php::App\\Services\\InsightComposer::compose",
        "fqmn": "App\\Services\\InsightComposer@compose",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceExportService.php::App\\Services\\InvoiceExportService::streamCsv",
        "fqmn": "App\\Services\\InvoiceExportService@streamCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceOcrService.php::App\\Services\\InvoiceOcrService::processSupplierInvoice",
        "fqmn": "App\\Services\\InvoiceOcrService@processSupplierInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createOrderInvoice",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createOrderInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createPlanInvoiceFromCharge",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createPlanInvoiceFromCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createWalletReceipt",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createWalletReceipt",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceService.php::App\\Services\\InvoiceService::generateSubscriptionInvoice",
        "fqmn": "App\\Services\\InvoiceService@generateSubscriptionInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::cleanupDraftInvoices",
        "fqmn": "App\\Services\\InvoiceWorkflowService@cleanupDraftInvoices",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::createInvoiceIfReady",
        "fqmn": "App\\Services\\InvoiceWorkflowService@createInvoiceIfReady",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::getWorkflowStatus",
        "fqmn": "App\\Services\\InvoiceWorkflowService@getWorkflowStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingAdvancesSince",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingAdvancesSince",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingInvoices",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingInvoices",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingInvoicesSince",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingInvoicesSince",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::createJob",
        "fqmn": "App\\Services\\JobService@createJob",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::createReferral",
        "fqmn": "App\\Services\\JobService@createReferral",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::updateJobStatus",
        "fqmn": "App\\Services\\JobService@updateJobStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::classifyDocument",
        "fqmn": "App\\Services\\KieClassifierService@classifyDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::confirmDocumentType",
        "fqmn": "App\\Services\\KieClassifierService@confirmDocumentType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::getClassificationDisplay",
        "fqmn": "App\\Services\\KieClassifierService@getClassificationDisplay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::shouldClassifyDocument",
        "fqmn": "App\\Services\\KieClassifierService@shouldClassifyDocument",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::getDepartmentKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@getDepartmentKnowledge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::getNameKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@getNameKnowledge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::normalizeDeptKey",
        "fqmn": "App\\Services\\KnowledgeService@normalizeDeptKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::normalizeNameKey",
        "fqmn": "App\\Services\\KnowledgeService@normalizeNameKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::upsertDepartmentKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@upsertDepartmentKnowledge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::upsertNameKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@upsertNameKnowledge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KpiOkrService.php::App\\Services\\KpiOkrService::buildCore",
        "fqmn": "App\\Services\\KpiOkrService@buildCore",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KpiOkrService.php::App\\Services\\KpiOkrService::getOkrMomentumForecast",
        "fqmn": "App\\Services\\KpiOkrService@getOkrMomentumForecast",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KpiOkrService.php::App\\Services\\KpiOkrService::getOkrPaceTracker",
        "fqmn": "App\\Services\\KpiOkrService@getOkrPaceTracker",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/KpiOkrService.php::App\\Services\\KpiOkrService::getRecognitionValueGap",
        "fqmn": "App\\Services\\KpiOkrService@getRecognitionValueGap",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::createDefaultLeaderboards",
        "fqmn": "App\\Services\\LeaderboardService@createDefaultLeaderboards",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::getCompanyLeaderboards",
        "fqmn": "App\\Services\\LeaderboardService@getCompanyLeaderboards",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::getLeaderboardSummary",
        "fqmn": "App\\Services\\LeaderboardService@getLeaderboardSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::getUserPosition",
        "fqmn": "App\\Services\\LeaderboardService@getUserPosition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::toggleLeaderboardVisibility",
        "fqmn": "App\\Services\\LeaderboardService@toggleLeaderboardVisibility",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeaderboardService.php::App\\Services\\LeaderboardService::updateLeaderboardSettings",
        "fqmn": "App\\Services\\LeaderboardService@updateLeaderboardSettings",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getInfluenceReachDepth",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getManagerCoverageQuality",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerCoverageQuality",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getManagerLatencyToRecognize",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerLatencyToRecognize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::summaries",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@summaries",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::contextFromRequest",
        "fqmn": "App\\Services\\LinkedInCapi@contextFromRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::customerConverted",
        "fqmn": "App\\Services\\LinkedInCapi@customerConverted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::demoBooked",
        "fqmn": "App\\Services\\LinkedInCapi@demoBooked",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::leadSubmitted",
        "fqmn": "App\\Services\\LinkedInCapi@leadSubmitted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::track",
        "fqmn": "App\\Services\\LinkedInCapi@track",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/LinkedInCapi.php::App\\Services\\LinkedInCapi::trialStarted",
        "fqmn": "App\\Services\\LinkedInCapi@trialStarted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::getCanonicalKeys",
        "fqmn": "App\\Services\\MappingService@getCanonicalKeys",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::saveProfile",
        "fqmn": "App\\Services\\MappingService@saveProfile",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::suggestMapping",
        "fqmn": "App\\Services\\MappingService@suggestMapping",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::suggestMappingDetailed",
        "fqmn": "App\\Services\\MappingService@suggestMappingDetailed",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/MetricConflictDetector.php::App\\Services\\Metrics\\MetricConflictDetector::assertNoUnresolvedConflicts",
        "fqmn": "App\\Services\\Metrics\\MetricConflictDetector@assertNoUnresolvedConflicts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/MetricConflictDetector.php::App\\Services\\Metrics\\MetricConflictDetector::detectConflicts",
        "fqmn": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::get",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@get",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::getFallbackPayload",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@getFallbackPayload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::getFallbackResult",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@getFallbackResult",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::store",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@store",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/SnapshotShapeAdapter.php::App\\Services\\Metrics\\SnapshotShapeAdapter::toLegacyWidgetData",
        "fqmn": "App\\Services\\Metrics\\SnapshotShapeAdapter@toLegacyWidgetData",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/SnapshotShapeAdapter.php::App\\Services\\Metrics\\SnapshotShapeAdapter::toMetricSnapshotPayload",
        "fqmn": "App\\Services\\Metrics\\SnapshotShapeAdapter@toMetricSnapshotPayload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::all",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@all",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::clearCache",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@clearCache",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::definition",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@definition",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::disambiguator",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@disambiguator",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::displayName",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@displayName",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::formula",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@formula",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::get",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@get",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::glossary",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@glossary",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::applyZohoPayment",
        "fqmn": "App\\Services\\MoneyMovementService@applyZohoPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::applyZohoPaymentByInvoiceId",
        "fqmn": "App\\Services\\MoneyMovementService@applyZohoPaymentByInvoiceId",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::applyZohoVendorPayment",
        "fqmn": "App\\Services\\MoneyMovementService@applyZohoVendorPayment",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::recordBankTransferIntent",
        "fqmn": "App\\Services\\MoneyMovementService@recordBankTransferIntent",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::recordSubscriptionRevocation",
        "fqmn": "App\\Services\\MoneyMovementService@recordSubscriptionRevocation",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::transferFromWallet",
        "fqmn": "App\\Services\\MoneyMovementService@transferFromWallet",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/MoneyMovementService.php::App\\Services\\MoneyMovementService::transferToWallet",
        "fqmn": "App\\Services\\MoneyMovementService@transferToWallet",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/EmailSenders/GmailSender.php::App\\Services\\Occasions\\EmailSenders\\GmailSender::sendTest",
        "fqmn": "App\\Services\\Occasions\\EmailSenders\\GmailSender@sendTest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/EmailSenders/OutlookSender.php::App\\Services\\Occasions\\EmailSenders\\OutlookSender::sendTest",
        "fqmn": "App\\Services\\Occasions\\EmailSenders\\OutlookSender@sendTest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::canUseOccasion",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@canUseOccasion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getAvailableFeatures",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getAvailableFeatures",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getFeatureDescription",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getFeatureDescription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getFeatureLimits",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getFeatureLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getRequiredPlanLevel",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getRequiredPlanLevel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/ManagerResolver.php::App\\Services\\Occasions\\ManagerResolver::getManagerRecipientsFor",
        "fqmn": "App\\Services\\Occasions\\ManagerResolver@getManagerRecipientsFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/OccasionRenderer.php::App\\Services\\Occasions\\OccasionRenderer::renderEmailContent",
        "fqmn": "App\\Services\\Occasions\\OccasionRenderer@renderEmailContent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/OccasionRenderer.php::App\\Services\\Occasions\\OccasionRenderer::validateTemplate",
        "fqmn": "App\\Services\\Occasions\\OccasionRenderer@validateTemplate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::applyAutoCorrect",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@applyAutoCorrect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::autoCorrectTypo",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::canonicalizePlaceholders",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@canonicalizePlaceholders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::extractCleanKey",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@extractCleanKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::helpList",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@helpList",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::isValid",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@isValid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::normalize",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@normalize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::preferredArabicAlias",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@preferredArabicAlias",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::resolve",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::analyzeConfidenceScores",
        "fqmn": "App\\Services\\OcrAnalyticsService@analyzeConfidenceScores",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::calculateAverageConfidence",
        "fqmn": "App\\Services\\OcrAnalyticsService@calculateAverageConfidence",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::checkOcrServiceHealth",
        "fqmn": "App\\Services\\OcrAnalyticsService@checkOcrServiceHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::exportAnalytics",
        "fqmn": "App\\Services\\OcrAnalyticsService@exportAnalytics",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getDocumentTypeSummary",
        "fqmn": "App\\Services\\OcrAnalyticsService@getDocumentTypeSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpis",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForDepartment",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForDepartment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForEmployee",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForEmployee",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForTeam",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForTeam",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForUsers",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForUsers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getOcrPerformanceStats",
        "fqmn": "App\\Services\\OcrAnalyticsService@getOcrPerformanceStats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::__construct",
        "fqmn": "App\\Services\\OcrClient@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::extract",
        "fqmn": "App\\Services\\OcrClient@extract",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::getConfig",
        "fqmn": "App\\Services\\OcrClient@getConfig",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::isHealthy",
        "fqmn": "App\\Services\\OcrClient@isHealthy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::computeForAllOrgs",
        "fqmn": "App\\Services\\OkrAutoTargetService@computeForAllOrgs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::computeForCompany",
        "fqmn": "App\\Services\\OkrAutoTargetService@computeForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::getOkrSettings",
        "fqmn": "App\\Services\\OkrAutoTargetService@getOkrSettings",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::preview",
        "fqmn": "App\\Services\\OkrAutoTargetService@preview",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::__construct",
        "fqmn": "App\\Services\\OrderCompletionService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::autoCompleteEligibleOrders",
        "fqmn": "App\\Services\\OrderCompletionService@autoCompleteEligibleOrders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::canCompleteOrder",
        "fqmn": "App\\Services\\OrderCompletionService@canCompleteOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::markOrderCompleted",
        "fqmn": "App\\Services\\OrderCompletionService@markOrderCompleted",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderExportService.php::App\\Services\\OrderExportService::buildInvoicesZip",
        "fqmn": "App\\Services\\OrderExportService@buildInvoicesZip",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderExportService.php::App\\Services\\OrderExportService::streamCsv",
        "fqmn": "App\\Services\\OrderExportService@streamCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderReconciliationService.php::App\\Services\\OrderReconciliationService::scan",
        "fqmn": "App\\Services\\OrderReconciliationService@scan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderReconciliationService.php::App\\Services\\OrderReconciliationService::scanSubscriptions",
        "fqmn": "App\\Services\\OrderReconciliationService@scanSubscriptions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OrderReconciliationService.php::App\\Services\\OrderReconciliationService::scanZohoSide",
        "fqmn": "App\\Services\\OrderReconciliationService@scanZohoSide",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::__construct",
        "fqmn": "App\\Services\\OtoClient@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::createShipment",
        "fqmn": "App\\Services\\OtoClient@createShipment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::getShipment",
        "fqmn": "App\\Services\\OtoClient@getShipment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::getShipmentCost",
        "fqmn": "App\\Services\\OtoClient@getShipmentCost",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::parseWebhook",
        "fqmn": "App\\Services\\OtoClient@parseWebhook",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::allocateProofToBatch",
        "fqmn": "App\\Services\\PaymentAllocator@allocateProofToBatch",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::recordProof",
        "fqmn": "App\\Services\\PaymentAllocator@recordProof",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentAllocator.php::App\\Services\\PaymentAllocator::unallocate",
        "fqmn": "App\\Services\\PaymentAllocator@unallocate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentApplicator.php::App\\Services\\PaymentApplicator::applyFifo",
        "fqmn": "App\\Services\\PaymentApplicator@applyFifo",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentApplicator.php::App\\Services\\PaymentApplicator::applyToSpecificInvoice",
        "fqmn": "App\\Services\\PaymentApplicator@applyToSpecificInvoice",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentGateway/StoredPaymentMethodService.php::App\\Services\\PaymentGateway\\StoredPaymentMethodService::getDefaultForCompany",
        "fqmn": "App\\Services\\PaymentGateway\\StoredPaymentMethodService@getDefaultForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentGateway/StoredPaymentMethodService.php::App\\Services\\PaymentGateway\\StoredPaymentMethodService::getDefaultPaymentMethodTokenForSubscription",
        "fqmn": "App\\Services\\PaymentGateway\\StoredPaymentMethodService@getDefaultPaymentMethodTokenForSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentGateway/TapClient.php::App\\Services\\PaymentGateway\\TapClient::refundCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapClient@refundCharge",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::__construct",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::createCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@createCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::processWebhook",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@processWebhook",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentGateway/TapGateway.php::App\\Services\\PaymentGateway\\TapGateway::refundCharge",
        "fqmn": "App\\Services\\PaymentGateway\\TapGateway@refundCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::__construct",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::isClientError",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isClientError",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::isServerError",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isServerError",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::completePaymentFlow",
        "fqmn": "App\\Services\\PaymentLogger@completePaymentFlow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::getPaymentFlowSummary",
        "fqmn": "App\\Services\\PaymentLogger@getPaymentFlowSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::logPaymentError",
        "fqmn": "App\\Services\\PaymentLogger@logPaymentError",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::logPaymentStep",
        "fqmn": "App\\Services\\PaymentLogger@logPaymentStep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::searchPaymentFlows",
        "fqmn": "App\\Services\\PaymentLogger@searchPaymentFlows",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentLogger.php::App\\Services\\PaymentLogger::startPaymentFlow",
        "fqmn": "App\\Services\\PaymentLogger@startPaymentFlow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::__construct",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::getProcessingStatus",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@getProcessingStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::processPaymentSuccess",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@processPaymentSuccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PaymentProcessingCoordinator.php::App\\Services\\PaymentProcessingCoordinator::processPaymentWebhook",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@processPaymentWebhook",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::calculateHighlightRegions",
        "fqmn": "App\\Services\\PdfRedliningService@calculateHighlightRegions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::cleanupOldRedlines",
        "fqmn": "App\\Services\\PdfRedliningService@cleanupOldRedlines",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::extractBoundingBoxes",
        "fqmn": "App\\Services\\PdfRedliningService@extractBoundingBoxes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::generateRedlinedPdf",
        "fqmn": "App\\Services\\PdfRedliningService@generateRedlinedPdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PlansCatalogService.php::App\\Services\\PlansCatalogService::getPublicPlansForDisplay",
        "fqmn": "App\\Services\\PlansCatalogService@getPublicPlansForDisplay",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Predictive/AttritionRiskEstimator.php::App\\Services\\Predictive\\AttritionRiskEstimator::compute",
        "fqmn": "App\\Services\\Predictive\\AttritionRiskEstimator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Predictive/CulturalHealthIndexCalculator.php::App\\Services\\Predictive\\CulturalHealthIndexCalculator::compute",
        "fqmn": "App\\Services\\Predictive\\CulturalHealthIndexCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Predictive/CulturalMomentumService.php::App\\Services\\Predictive\\CulturalMomentumService::compute",
        "fqmn": "App\\Services\\Predictive\\CulturalMomentumService@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Predictive/PromotionReadinessPredictor.php::App\\Services\\Predictive\\PromotionReadinessPredictor::compute",
        "fqmn": "App\\Services\\Predictive\\PromotionReadinessPredictor@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Predictive/ScenarioSimulator.php::App\\Services\\Predictive\\ScenarioSimulator::__construct",
        "fqmn": "App\\Services\\Predictive\\ScenarioSimulator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Predictive/ScenarioSimulator.php::App\\Services\\Predictive\\ScenarioSimulator::simulate",
        "fqmn": "App\\Services\\Predictive\\ScenarioSimulator@simulate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Predictive/TeamStabilityIndex.php::App\\Services\\Predictive\\TeamStabilityIndex::compute",
        "fqmn": "App\\Services\\Predictive\\TeamStabilityIndex@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PricingResolver.php::App\\Services\\PricingResolver::getPerUnitPrice",
        "fqmn": "App\\Services\\PricingResolver@getPerUnitPrice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Privacy/ConsentService.php::App\\Services\\Privacy\\ConsentService::history",
        "fqmn": "App\\Services\\Privacy\\ConsentService@history",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Privacy/ConsentService.php::App\\Services\\Privacy\\ConsentService::toggle",
        "fqmn": "App\\Services\\Privacy\\ConsentService@toggle",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Privacy/DataAccessLogger.php::App\\Services\\Privacy\\DataAccessLogger::record",
        "fqmn": "App\\Services\\Privacy\\DataAccessLogger@record",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Privacy/DataAccessLogger.php::App\\Services\\Privacy\\DataAccessLogger::recordAsUser",
        "fqmn": "App\\Services\\Privacy\\DataAccessLogger@recordAsUser",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::categories",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@categories",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::consentKeys",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@consentKeys",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::defaultFor",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@defaultFor",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::thirdPartyProcessors",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@thirdPartyProcessors",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::generateCheckoutValidationRules",
        "fqmn": "App\\Services\\ProductCustomFieldsService@generateCheckoutValidationRules",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::getCustomFieldsForCart",
        "fqmn": "App\\Services\\ProductCustomFieldsService@getCustomFieldsForCart",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::getDisplayDataForSupplier",
        "fqmn": "App\\Services\\ProductCustomFieldsService@getDisplayDataForSupplier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::processCustomFieldsForOrder",
        "fqmn": "App\\Services\\ProductCustomFieldsService@processCustomFieldsForOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::validateCustomFieldsData",
        "fqmn": "App\\Services\\ProductCustomFieldsService@validateCustomFieldsData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::getPromotionPrecedent",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@getPromotionPrecedent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::getSalaryEquityCheck",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@getSalaryEquityCheck",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::recordCompensation",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@recordCompensation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::checkAndHandleCompletion",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@checkAndHandleCompletion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::customizeTarget",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@customizeTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::generate",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@generate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::ratifyTarget",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@ratifyTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/Pillars/CulturalAdherenceCalculator.php::App\\Services\\Promotion\\Pillars\\CulturalAdherenceCalculator::compute",
        "fqmn": "App\\Services\\Promotion\\Pillars\\CulturalAdherenceCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/Pillars/ExecutionIndexCalculator.php::App\\Services\\Promotion\\Pillars\\ExecutionIndexCalculator::compute",
        "fqmn": "App\\Services\\Promotion\\Pillars\\ExecutionIndexCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/Pillars/NetworkInfluenceCalculator.php::App\\Services\\Promotion\\Pillars\\NetworkInfluenceCalculator::compute",
        "fqmn": "App\\Services\\Promotion\\Pillars\\NetworkInfluenceCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::activeCooldown",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@activeCooldown",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::apply",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@apply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::latestApplication",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@latestApplication",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionAuditLogger.php::App\\Services\\Promotion\\PromotionAuditLogger::log",
        "fqmn": "App\\Services\\Promotion\\PromotionAuditLogger@log",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCalibrationService.php::App\\Services\\Promotion\\PromotionCalibrationService::analyzeFlags",
        "fqmn": "App\\Services\\Promotion\\PromotionCalibrationService@analyzeFlags",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::attritionRiskFor",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@attritionRiskFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::closeCycle",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@closeCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::composePriority",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@composePriority",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::createCycle",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@createCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::evaluateAll",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@evaluateAll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::finalizeCycle",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@finalizeCycle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::isFinalized",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@isFinalized",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionCycleService.php::App\\Services\\Promotion\\PromotionCycleService::previousCycleKey",
        "fqmn": "App\\Services\\Promotion\\PromotionCycleService@previousCycleKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionEvaluationService.php::App\\Services\\Promotion\\PromotionEvaluationService::evaluate",
        "fqmn": "App\\Services\\Promotion\\PromotionEvaluationService@evaluate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::acceptSuggestions",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@acceptSuggestions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::acceptWithModifications",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@acceptWithModifications",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::bulkRescan",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@bulkRescan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::collectRolePairs",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@collectRolePairs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/PromotionProfileSeederService.php::App\\Services\\Promotion\\PromotionProfileSeederService::generateSuggestions",
        "fqmn": "App\\Services\\Promotion\\PromotionProfileSeederService@generateSuggestions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/SuccessionReadinessService.php::App\\Services\\Promotion\\SuccessionReadinessService::analyze",
        "fqmn": "App\\Services\\Promotion\\SuccessionReadinessService@analyze",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/SuccessionReadinessService.php::App\\Services\\Promotion\\SuccessionReadinessService::createTransitionTask",
        "fqmn": "App\\Services\\Promotion\\SuccessionReadinessService@createTransitionTask",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/TeamLeaderRecommendationService.php::App\\Services\\Promotion\\TeamLeaderRecommendationService::forTarget",
        "fqmn": "App\\Services\\Promotion\\TeamLeaderRecommendationService@forTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/TeamLeaderRecommendationService.php::App\\Services\\Promotion\\TeamLeaderRecommendationService::record",
        "fqmn": "App\\Services\\Promotion\\TeamLeaderRecommendationService@record",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Promotion/TeamLeaderRecommendationService.php::App\\Services\\Promotion\\TeamLeaderRecommendationService::renderInlineSummary",
        "fqmn": "App\\Services\\Promotion\\TeamLeaderRecommendationService@renderInlineSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PromptGeneratorService.php::App\\Services\\PromptGeneratorService::prompts",
        "fqmn": "App\\Services\\PromptGeneratorService@prompts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ProrationService.php::App\\Services\\ProrationService::calculatePlanChange",
        "fqmn": "App\\Services\\ProrationService@calculatePlanChange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::__construct",
        "fqmn": "App\\Services\\PushService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::sendToSubscriptions",
        "fqmn": "App\\Services\\PushService@sendToSubscriptions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::sendToUser",
        "fqmn": "App\\Services\\PushService@sendToUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RaiseNotifier.php::App\\Services\\RaiseNotifier::sendApproved",
        "fqmn": "App\\Services\\RaiseNotifier@sendApproved",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RaiseNotifier.php::App\\Services\\RaiseNotifier::sendDeclined",
        "fqmn": "App\\Services\\RaiseNotifier@sendDeclined",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RaiseService.php::App\\Services\\RaiseService::evaluate",
        "fqmn": "App\\Services\\RaiseService@evaluate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getComparisons",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getComparisons",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getKpis",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getKpis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getRecognitionOutcomeCorrelation",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getRecognitionOutcomeCorrelation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::canGive",
        "fqmn": "App\\Services\\RecognitionPolicyService@canGive",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::forCompany",
        "fqmn": "App\\Services\\RecognitionPolicyService@forCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::giverUserIds",
        "fqmn": "App\\Services\\RecognitionPolicyService@giverUserIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::metadataBlock",
        "fqmn": "App\\Services\\RecognitionPolicyService@metadataBlock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::userRole",
        "fqmn": "App\\Services\\RecognitionPolicyService@userRole",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::userRoles",
        "fqmn": "App\\Services\\RecognitionPolicyService@userRoles",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionPredictionService.php::App\\Services\\RecognitionPredictionService::computeForScope",
        "fqmn": "App\\Services\\RecognitionPredictionService@computeForScope",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionProgressService.php::App\\Services\\RecognitionProgressService::build",
        "fqmn": "App\\Services\\RecognitionProgressService@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::__construct",
        "fqmn": "App\\Services\\RecognitionService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::addComment",
        "fqmn": "App\\Services\\RecognitionService@addComment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::addReaction",
        "fqmn": "App\\Services\\RecognitionService@addReaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::createRecognition",
        "fqmn": "App\\Services\\RecognitionService@createRecognition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::getFeedForCompany",
        "fqmn": "App\\Services\\RecognitionService@getFeedForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionService.php::App\\Services\\RecognitionService::removeReaction",
        "fqmn": "App\\Services\\RecognitionService@removeReaction",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::getMonthlyTarget",
        "fqmn": "App\\Services\\RecognitionTargetService@getMonthlyTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::resolveTargetForDate",
        "fqmn": "App\\Services\\RecognitionTargetService@resolveTargetForDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::setMonthlyTarget",
        "fqmn": "App\\Services\\RecognitionTargetService@setMonthlyTarget",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RedisLockService.php::App\\Services\\RedisLockService::runWithLock",
        "fqmn": "App\\Services\\RedisLockService@runWithLock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/RefundAllocator.php::App\\Services\\RefundAllocator::allocate",
        "fqmn": "App\\Services\\RefundAllocator@allocate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::approvalDeadline",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@approvalDeadline",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::buildConflicts",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::buildScoreBreakdown",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildScoreBreakdown",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::humanSlot",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@humanSlot",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::lastRewardedDate",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@lastRewardedDate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::policySummary",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@policySummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::tenureDays",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@tenureDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardNotifier.php::App\\Services\\RewardNotifier::sendApprovalRequest",
        "fqmn": "App\\Services\\RewardNotifier@sendApprovalRequest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardNotifier.php::App\\Services\\RewardNotifier::sendWinnerNotice",
        "fqmn": "App\\Services\\RewardNotifier@sendWinnerNotice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Rewards/CompanyCancellationPointsFreeze.php::App\\Services\\Rewards\\CompanyCancellationPointsFreeze::freezeForCompany",
        "fqmn": "App\\Services\\Rewards\\CompanyCancellationPointsFreeze@freezeForCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Rewards/CompanyCancellationPointsFreeze.php::App\\Services\\Rewards\\CompanyCancellationPointsFreeze::previewForCompany",
        "fqmn": "App\\Services\\Rewards\\CompanyCancellationPointsFreeze@previewForCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Rewards/RewardsStatement.php::App\\Services\\Rewards\\RewardsStatement::build",
        "fqmn": "App\\Services\\Rewards\\RewardsStatement@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardService.php::App\\Services\\RewardService::computeWeeklyWinners",
        "fqmn": "App\\Services\\RewardService@computeWeeklyWinners",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardService.php::App\\Services\\RewardService::persistGrants",
        "fqmn": "App\\Services\\RewardService@persistGrants",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardsExpenseRecognitionService.php::App\\Services\\RewardsExpenseRecognitionService::recognizeForOrder",
        "fqmn": "App\\Services\\RewardsExpenseRecognitionService@recognizeForOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardsExpenseRecognitionService.php::App\\Services\\RewardsExpenseRecognitionService::reverseForRefund",
        "fqmn": "App\\Services\\RewardsExpenseRecognitionService@reverseForRefund",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardsLiabilityAgingService.php::App\\Services\\RewardsLiabilityAgingService::ageForCompany",
        "fqmn": "App\\Services\\RewardsLiabilityAgingService@ageForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RewardsLiabilityAgingService.php::App\\Services\\RewardsLiabilityAgingService::outstandingPointsForCompany",
        "fqmn": "App\\Services\\RewardsLiabilityAgingService@outstandingPointsForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/RfqSubmissionService.php::App\\Services\\RfqSubmissionService::submit",
        "fqmn": "App\\Services\\RfqSubmissionService@submit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::__construct",
        "fqmn": "App\\Services\\SalesCommissionService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::approveCommission",
        "fqmn": "App\\Services\\SalesCommissionService@approveCommission",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::createCommissionFromInvoice",
        "fqmn": "App\\Services\\SalesCommissionService@createCommissionFromInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::getTotalCommissions",
        "fqmn": "App\\Services\\SalesCommissionService@getTotalCommissions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::getTotalPayments",
        "fqmn": "App\\Services\\SalesCommissionService@getTotalPayments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SalesCommissionService.php::App\\Services\\SalesCommissionService::markCommissionAsPaid",
        "fqmn": "App\\Services\\SalesCommissionService@markCommissionAsPaid",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ShipmentService.php::App\\Services\\ShipmentService::__construct",
        "fqmn": "App\\Services\\ShipmentService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ShipmentService.php::App\\Services\\ShipmentService::createOrderShipments",
        "fqmn": "App\\Services\\ShipmentService@createOrderShipments",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::checkStockAvailability",
        "fqmn": "App\\Services\\StockService@checkStockAvailability",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::cleanupExpiredReservations",
        "fqmn": "App\\Services\\StockService@cleanupExpiredReservations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::confirmReservations",
        "fqmn": "App\\Services\\StockService@confirmReservations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::releaseReservations",
        "fqmn": "App\\Services\\StockService@releaseReservations",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::reserveStock",
        "fqmn": "App\\Services\\StockService@reserveStock",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::reserveStockWithBackorder",
        "fqmn": "App\\Services\\StockService@reserveStockWithBackorder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::classify",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::draft",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@draft",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::openAiJson",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@openAiJson",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/BaselineSuggester.php::App\\Services\\StrategyAlignment\\BaselineSuggester::suggest",
        "fqmn": "App\\Services\\StrategyAlignment\\BaselineSuggester@suggest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::availableTiersFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@availableTiersFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canApproveDefinition",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveDefinition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canApproveValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canAttestOutcome",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canAttestOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canCreate",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canCreate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canEditDefinition",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canEditValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canReportValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canReportValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canResubmitValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canResubmitValue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canScopeTo",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canScopeTo",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canViewKpi",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canViewKpi",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::departmentManagedBy",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::hasAuthorityOver",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@hasAuthorityOver",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::isDepartmentManager",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isDepartmentManager",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::isEmployeeRole",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isEmployeeRole",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::nextApproverInChain",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@nextApproverInChain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::resolveApprovalChain",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@resolveApprovalChain",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::scopeOptionsFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@scopeOptionsFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::teamsLedOrManagedBy",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::userDepartmentId",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userDepartmentId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::userTeamIds",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userTeamIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiPointMinter.php::App\\Services\\StrategyAlignment\\CustomKpiPointMinter::mint",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiPointMinter@mint",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::isFirstSundayOfMonth",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::isSecondSundayOfMonth",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isSecondSundayOfMonth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::periodJustEnded",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@periodJustEnded",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::pickApproverFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@pickApproverFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::runDaily",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@runDaily",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendDue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendDue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendFirstSundayReminders",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendFirstSundayReminders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendSecondSundayReminders",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendSecondSundayReminders",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::computeAchievementPercent",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@computeAchievementPercent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::computeEarnedPoints",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@computeEarnedPoints",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::isHit",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@isHit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::mintForOkrOutcome",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@mintForOkrOutcome",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/KpiScoring.php::App\\Services\\StrategyAlignment\\KpiScoring::mintForValueHit",
        "fqmn": "App\\Services\\StrategyAlignment\\KpiScoring@mintForValueHit",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::available",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@available",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::earned",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@earned",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::forfeited",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@forfeited",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::forUser",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@forUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::onHold",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@onHold",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::snapshot",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@snapshot",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::spent",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@spent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/PointsBalance.php::App\\Services\\StrategyAlignment\\PointsBalance::weightedPointValueHalalas",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@weightedPointValueHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::askIndustryQuestions",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@askIndustryQuestions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::draftKpis",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::draftOkrs",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftOkrs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionBillingService.php::App\\Services\\SubscriptionBillingService::calculateAmountHalalas",
        "fqmn": "App\\Services\\SubscriptionBillingService@calculateAmountHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionProvisioner.php::App\\Services\\SubscriptionProvisioner::provisionCompanyToPlanVersion",
        "fqmn": "App\\Services\\SubscriptionProvisioner@provisionCompanyToPlanVersion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::hasActiveSubscription",
        "fqmn": "App\\Services\\SubscriptionResolver@hasActiveSubscription",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::latestForCompany",
        "fqmn": "App\\Services\\SubscriptionResolver@latestForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::statusForCompany",
        "fqmn": "App\\Services\\SubscriptionResolver@statusForCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::advanceGraceDays",
        "fqmn": "App\\Services\\SubscriptionStateService@advanceGraceDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::cycleEnd",
        "fqmn": "App\\Services\\SubscriptionStateService@cycleEnd",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::logTransition",
        "fqmn": "App\\Services\\SubscriptionStateService@logTransition",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markActive",
        "fqmn": "App\\Services\\SubscriptionStateService@markActive",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markCancelled",
        "fqmn": "App\\Services\\SubscriptionStateService@markCancelled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markPastDue",
        "fqmn": "App\\Services\\SubscriptionStateService@markPastDue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::markSuspended",
        "fqmn": "App\\Services\\SubscriptionStateService@markSuspended",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::normalizeInterval",
        "fqmn": "App\\Services\\SubscriptionStateService@normalizeInterval",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::reactivate",
        "fqmn": "App\\Services\\SubscriptionStateService@reactivate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::scheduleRetryHours",
        "fqmn": "App\\Services\\SubscriptionStateService@scheduleRetryHours",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SubscriptionStateService.php::App\\Services\\SubscriptionStateService::updateById",
        "fqmn": "App\\Services\\SubscriptionStateService@updateById",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/AmendmentService.php::App\\Services\\Succession\\AmendmentService::reopen",
        "fqmn": "App\\Services\\Succession\\AmendmentService@reopen",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/BiasAuditService.php::App\\Services\\Succession\\BiasAuditService::run",
        "fqmn": "App\\Services\\Succession\\BiasAuditService@run",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/BlindEmployeeSurveyService.php::App\\Services\\Succession\\BlindEmployeeSurveyService::dispatch",
        "fqmn": "App\\Services\\Succession\\BlindEmployeeSurveyService@dispatch",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/BlindEmployeeSurveyService.php::App\\Services\\Succession\\BlindEmployeeSurveyService::submitAnswers",
        "fqmn": "App\\Services\\Succession\\BlindEmployeeSurveyService@submitAnswers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/CadencePacer.php::App\\Services\\Succession\\CadencePacer::decideAlerts",
        "fqmn": "App\\Services\\Succession\\CadencePacer@decideAlerts",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Calculators/ExecutionIndexCalculator.php::App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator::__construct",
        "fqmn": "App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Calculators/ExecutionIndexCalculator.php::App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator::compute",
        "fqmn": "App\\Services\\Succession\\Calculators\\ExecutionIndexCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Calculators/TimeLockCalculator.php::App\\Services\\Succession\\Calculators\\TimeLockCalculator::__construct",
        "fqmn": "App\\Services\\Succession\\Calculators\\TimeLockCalculator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Calculators/TimeLockCalculator.php::App\\Services\\Succession\\Calculators\\TimeLockCalculator::compute",
        "fqmn": "App\\Services\\Succession\\Calculators\\TimeLockCalculator@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/ClawbackService.php::App\\Services\\Succession\\ClawbackService::handleResignation",
        "fqmn": "App\\Services\\Succession\\ClawbackService@handleResignation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/ClawbackService.php::App\\Services\\Succession\\ClawbackService::isBlocked",
        "fqmn": "App\\Services\\Succession\\ClawbackService@isBlocked",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/ClawbackService.php::App\\Services\\Succession\\ClawbackService::triggerClawback",
        "fqmn": "App\\Services\\Succession\\ClawbackService@triggerClawback",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Succession/CompanyValueTargetService.php::App\\Services\\Succession\\CompanyValueTargetService::canCoSign",
        "fqmn": "App\\Services\\Succession\\CompanyValueTargetService@canCoSign",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Succession/CompanyValueTargetService.php::App\\Services\\Succession\\CompanyValueTargetService::currentFor",
        "fqmn": "App\\Services\\Succession\\CompanyValueTargetService@currentFor",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/CrossCheckExecutor.php::App\\Services\\Succession\\CrossCheckExecutor::execute",
        "fqmn": "App\\Services\\Succession\\CrossCheckExecutor@execute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/CurriculumBuilderService.php::App\\Services\\Succession\\CurriculumBuilderService::startPlan",
        "fqmn": "App\\Services\\Succession\\CurriculumBuilderService@startPlan",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/DisputeReportGenerator.php::App\\Services\\Succession\\DisputeReportGenerator::generate",
        "fqmn": "App\\Services\\Succession\\DisputeReportGenerator@generate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Evaluators/NullMetricEvaluator.php::App\\Services\\Succession\\Evaluators\\NullMetricEvaluator::evaluate",
        "fqmn": "App\\Services\\Succession\\Evaluators\\NullMetricEvaluator@evaluate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/GptSnapshotRecorder.php::App\\Services\\Succession\\GptSnapshotRecorder::call",
        "fqmn": "App\\Services\\Succession\\GptSnapshotRecorder@call",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validate",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validateCurriculum",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validateCurriculum",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validateMilestonesIndividually",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validateMilestonesIndividually",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::all",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@all",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::exists",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::forLocale",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@forLocale",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::get",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@get",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::isNative",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@isNative",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::nativeKeys",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@nativeKeys",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::requiresIntegration",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@requiresIntegration",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MetricCatalogGapLogger.php::App\\Services\\Succession\\MetricCatalogGapLogger::record",
        "fqmn": "App\\Services\\Succession\\MetricCatalogGapLogger@record",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/MilestoneBindingRewriter.php::App\\Services\\Succession\\MilestoneBindingRewriter::rewrite",
        "fqmn": "App\\Services\\Succession\\MilestoneBindingRewriter@rewrite",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/OverrideLogger.php::App\\Services\\Succession\\OverrideLogger::bypassAlgorithm",
        "fqmn": "App\\Services\\Succession\\OverrideLogger@bypassAlgorithm",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/PipelineStatusService.php::App\\Services\\Succession\\PipelineStatusService::forCompany",
        "fqmn": "App\\Services\\Succession\\PipelineStatusService@forCompany",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/PipelineStatusService.php::App\\Services\\Succession\\PipelineStatusService::oneLiner",
        "fqmn": "App\\Services\\Succession\\PipelineStatusService@oneLiner",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/PromotionAuditWriter.php::App\\Services\\Succession\\PromotionAuditWriter::recordComputation",
        "fqmn": "App\\Services\\Succession\\PromotionAuditWriter@recordComputation",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/PromotionValidationScoreService.php::App\\Services\\Succession\\PromotionValidationScoreService::evaluate",
        "fqmn": "App\\Services\\Succession\\PromotionValidationScoreService@evaluate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/PromotionValidationScoreService.php::App\\Services\\Succession\\PromotionValidationScoreService::evaluateWithWeightOverride",
        "fqmn": "App\\Services\\Succession\\PromotionValidationScoreService@evaluateWithWeightOverride",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseRecognitionGraphProvider.php::App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider::edges",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider@edges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseTaskBadgeProvider.php::App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider::earnedBadgeIds",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider@earnedBadgeIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseTenureProvider.php::App\\Services\\Succession\\Providers\\DatabaseTenureProvider::trustSeedUserIds",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseTenureProvider@trustSeedUserIds",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::__construct",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::companyTargetDistribution",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@companyTargetDistribution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::currentTargetId",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@currentTargetId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::employeeDistribution",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@employeeDistribution",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/QuarterlyOverrideExporter.php::App\\Services\\Succession\\QuarterlyOverrideExporter::collect",
        "fqmn": "App\\Services\\Succession\\QuarterlyOverrideExporter@collect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/QuarterlyOverrideExporter.php::App\\Services\\Succession\\QuarterlyOverrideExporter::toCsv",
        "fqmn": "App\\Services\\Succession\\QuarterlyOverrideExporter@toCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/QuestCompletionDetector.php::App\\Services\\Succession\\QuestCompletionDetector::sweep",
        "fqmn": "App\\Services\\Succession\\QuestCompletionDetector@sweep",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/RejectionQuestService.php::App\\Services\\Succession\\RejectionQuestService::generateForRejection",
        "fqmn": "App\\Services\\Succession\\RejectionQuestService@generateForRejection",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/SuccessionGptClient.php::App\\Services\\Succession\\SuccessionGptClient::generateCurriculum",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculum",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/SuccessionGptClient.php::App\\Services\\Succession\\SuccessionGptClient::generateCurriculumWithRetry",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculumWithRetry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/SuccessionPointsService.php::App\\Services\\Succession\\SuccessionPointsService::creditMilestoneCompletion",
        "fqmn": "App\\Services\\Succession\\SuccessionPointsService@creditMilestoneCompletion",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Succession/SuccessorSelfScoreCalculator.php::App\\Services\\Succession\\SuccessorSelfScoreCalculator::recompute",
        "fqmn": "App\\Services\\Succession\\SuccessorSelfScoreCalculator@recompute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Summaries/KpiSummaryBuilder.php::App\\Services\\Summaries\\KpiSummaryBuilder::build",
        "fqmn": "App\\Services\\Summaries\\KpiSummaryBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Summaries/OkrSummaryBuilder.php::App\\Services\\Summaries\\OkrSummaryBuilder::build",
        "fqmn": "App\\Services\\Summaries\\OkrSummaryBuilder@build",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::analyzeOcrResults",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@analyzeOcrResults",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::generateWorkflowSummary",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@generateWorkflowSummary",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::getReviewPriority",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@getReviewPriority",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::processInvoiceReview",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@processInvoiceReview",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SupplierInvoiceReviewService.php::App\\Services\\SupplierInvoiceReviewService::suggestFieldCorrections",
        "fqmn": "App\\Services\\SupplierInvoiceReviewService@suggestFieldCorrections",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/SupplierTaxInvoiceService.php::App\\Services\\SupplierTaxInvoiceService::issueForOrder",
        "fqmn": "App\\Services\\SupplierTaxInvoiceService@issueForOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TalentInsightsService.php::App\\Services\\TalentInsightsService::__construct",
        "fqmn": "App\\Services\\TalentInsightsService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TalentInsightsService.php::App\\Services\\TalentInsightsService::getTalent",
        "fqmn": "App\\Services\\TalentInsightsService@getTalent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getLeaderWeightHistory",
        "fqmn": "App\\Services\\TalentModelService@getLeaderWeightHistory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getLeaderWeightsMeta",
        "fqmn": "App\\Services\\TalentModelService@getLeaderWeightsMeta",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getRiskWeights",
        "fqmn": "App\\Services\\TalentModelService@getRiskWeights",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getRiskWeightsMeta",
        "fqmn": "App\\Services\\TalentModelService@getRiskWeightsMeta",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::__construct",
        "fqmn": "App\\Services\\TapClient@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::createCharge",
        "fqmn": "App\\Services\\TapClient@createCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::getCharge",
        "fqmn": "App\\Services\\TapClient@getCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::listCharges",
        "fqmn": "App\\Services\\TapClient@listCharges",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::make",
        "fqmn": "App\\Services\\TapClient@make",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapClient.php::App\\Services\\TapClient::refundCharge",
        "fqmn": "App\\Services\\TapClient@refundCharge",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TapWebhookHandler.php::App\\Services\\TapWebhookHandler::handle",
        "fqmn": "App\\Services\\TapWebhookHandler@handle",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Tasks/TaskBoardService.php::App\\Services\\Tasks\\TaskBoardService::columnOf",
        "fqmn": "App\\Services\\Tasks\\TaskBoardService@columnOf",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Tasks/TaskBoardService.php::App\\Services\\Tasks\\TaskBoardService::columns",
        "fqmn": "App\\Services\\Tasks\\TaskBoardService@columns",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Tasks/TaskBoardService.php::App\\Services\\Tasks\\TaskBoardService::moveToColumn",
        "fqmn": "App\\Services\\Tasks\\TaskBoardService@moveToColumn",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Tasks/TaskBoardService.php::App\\Services\\Tasks\\TaskBoardService::reorderColumn",
        "fqmn": "App\\Services\\Tasks\\TaskBoardService@reorderColumn",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TasksAnalyticsService.php::App\\Services\\TasksAnalyticsService::compute",
        "fqmn": "App\\Services\\TasksAnalyticsService@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TasksAnalyticsService.php::App\\Services\\TasksAnalyticsService::monthlyRollup",
        "fqmn": "App\\Services\\TasksAnalyticsService@monthlyRollup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::computeFromNetCents",
        "fqmn": "App\\Services\\TaxService@computeFromNetCents",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::computeFromNetHalalas",
        "fqmn": "App\\Services\\TaxService@computeFromNetHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRateBps",
        "fqmn": "App\\Services\\TaxService@getVatRateBps",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRateDecimal",
        "fqmn": "App\\Services\\TaxService@getVatRateDecimal",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRatePercent",
        "fqmn": "App\\Services\\TaxService@getVatRatePercent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::splitInclusiveTotalCents",
        "fqmn": "App\\Services\\TaxService@splitInclusiveTotalCents",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::splitInclusiveTotalHalalas",
        "fqmn": "App\\Services\\TaxService@splitInclusiveTotalHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/TeamProductivityService.php::App\\Services\\TeamProductivityService::getTeamProductivityIndex",
        "fqmn": "App\\Services\\TeamProductivityService@getTeamProductivityIndex",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/TurnstileService.php::App\\Services\\TurnstileService::__construct",
        "fqmn": "App\\Services\\TurnstileService@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/TurnstileService.php::App\\Services\\TurnstileService::verify",
        "fqmn": "App\\Services\\TurnstileService@verify",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/VatReturnService.php::App\\Services\\VatReturnService::quarterRange",
        "fqmn": "App\\Services\\VatReturnService@quarterRange",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/VatReturnService.php::App\\Services\\VatReturnService::renderCsv",
        "fqmn": "App\\Services\\VatReturnService@renderCsv",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/VatReturnService.php::App\\Services\\VatReturnService::renderXml",
        "fqmn": "App\\Services\\VatReturnService@renderXml",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/VatReturnService.php::App\\Services\\VatReturnService::summarize",
        "fqmn": "App\\Services\\VatReturnService@summarize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetDataResolver.php::App\\Services\\WidgetDataResolver::resolve",
        "fqmn": "App\\Services\\WidgetDataResolver@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetDataResolver.php::App\\Services\\WidgetDataResolver::valueForKey",
        "fqmn": "App\\Services\\WidgetDataResolver@valueForKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::categorize",
        "fqmn": "App\\Services\\WidgetMatrixService@categorize",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::filterByClassification",
        "fqmn": "App\\Services\\WidgetMatrixService@filterByClassification",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::filterByUiContainer",
        "fqmn": "App\\Services\\WidgetMatrixService@filterByUiContainer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::getByCanonical",
        "fqmn": "App\\Services\\WidgetMatrixService@getByCanonical",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::getEnabled",
        "fqmn": "App\\Services\\WidgetMatrixService@getEnabled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::groupByUiContainer",
        "fqmn": "App\\Services\\WidgetMatrixService@groupByUiContainer",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::hasProTier",
        "fqmn": "App\\Services\\WidgetMatrixService@hasProTier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/AbstractReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/AfterHoursPercentageWidget.php::App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/AttachmentRateWidget.php::App\\Services\\Widgets\\Analytics\\AttachmentRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/AttritionRiskByTenureWidget.php::App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/AvgRecencyWidget.php::App\\Services\\Widgets\\Analytics\\AvgRecencyWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AvgRecencyWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/BadgesEarnedWindowedWidget.php::App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/BadgeTargetsCompletionWidget.php::App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/BadgeTargetsWidget.php::App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/BridgeEmployeesWidget.php::App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Widgets/Analytics/DiDAnalysisWidget.php::App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@__construct",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Widgets/Analytics/DiDAnalysisWidget.php::App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@resolve",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/EngagementHealthSummariesWidget.php::App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget::backtest",
        "fqmn": "App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget@backtest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/GiniCoefficientWidget.php::App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/GiniCoefficientWidget.php::App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/GiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\GiverCoverageWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/GiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\GiverCoverageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/InternalMobilityRateWidget.php::App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerBudgetUtilizationWidget.php::App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerResponseRateWidget.php::App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerVelocityWidget.php::App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/NetworkIsolationWidget.php::App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget::calculateNetworkSnapshots",
        "fqmn": "App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget@calculateNetworkSnapshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/OkrMomentumForecastWidget.php::App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/PeerToPeerRatioWidget.php::App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/PointsEarnedWindowedWidget.php::App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/ReceiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/ReceiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/ReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\ReciprocityWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/ReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\ReciprocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/RecognitionEquityWidget.php::App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/RecognitionOutcomeCorrelationWidget.php::App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/RetentionRateWidget.php::App\\Services\\Widgets\\Analytics\\RetentionRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RetentionRateWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/SilentDaysMapWidget.php::App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/SilentDaysMapWidget.php::App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/TaskAnalyticsWidget.php::App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/TaskMonthlyRollupWidget.php::App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/TimeToFirstReactionWidget.php::App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/Top10ShareWidget.php::App\\Services\\Widgets\\Analytics\\Top10ShareWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/Top10ShareWidget.php::App\\Services\\Widgets\\Analytics\\Top10ShareWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/UnderRecognizedHighProducersWidget.php::App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget::__construct",
        "fqmn": "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/UnderRecognizedHighProducersWidget.php::App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/ValueAdoptionWidget.php::App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Analytics/WeekendWeekdayRatioWidget.php::App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::clearSnapshotCache",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@clearSnapshotCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::warmSnapshotCache",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@warmSnapshotCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::clearResolveCache",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@clearResolveCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::requestCache",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@requestCache",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveDeduped",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveDeduped",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveHeadcount",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveHeadcount",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveScope",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveScope",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveWindow",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveWindowWithTz",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveWindowWithTz",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::widgetCacheKey",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@widgetCacheKey",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::window",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@window",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/Widgets/CompanyStatusLineBuilder.php::App\\Services\\Widgets\\CompanyStatusLineBuilder::build",
        "fqmn": "App\\Services\\Widgets\\CompanyStatusLineBuilder@build",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/DrilldownSignalDetector.php::App\\Services\\Widgets\\DrilldownSignalDetector::hasAcData",
        "fqmn": "App\\Services\\Widgets\\DrilldownSignalDetector@hasAcData",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/DrilldownSignalDetector.php::App\\Services\\Widgets\\DrilldownSignalDetector::resolveSignalType",
        "fqmn": "App\\Services\\Widgets\\DrilldownSignalDetector@resolveSignalType",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Engines/NetworkIsolationEngine.php::App\\Services\\Widgets\\Engines\\NetworkIsolationEngine::run",
        "fqmn": "App\\Services\\Widgets\\Engines\\NetworkIsolationEngine@run",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Engines/TimelinessEngine.php::App\\Services\\Widgets\\Engines\\TimelinessEngine::run",
        "fqmn": "App\\Services\\Widgets\\Engines\\TimelinessEngine@run",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Predictive/BehaviorDriversWidget.php::App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Predictive/EngagementForecastWidget.php::App\\Services\\Widgets\\Predictive\\EngagementForecastWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\EngagementForecastWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Predictive/PromotionReadinessWidget.php::App\\Services\\Widgets\\Predictive\\PromotionReadinessWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\PromotionReadinessWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Widgets/Predictive/TeamStabilityIndexWidget.php::App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::customerConverted",
        "fqmn": "App\\Services\\XCapi@customerConverted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::demoBooked",
        "fqmn": "App\\Services\\XCapi@demoBooked",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::leadSubmitted",
        "fqmn": "App\\Services\\XCapi@leadSubmitted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::track",
        "fqmn": "App\\Services\\XCapi@track",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::trialStarted",
        "fqmn": "App\\Services\\XCapi@trialStarted",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::__construct",
        "fqmn": "App\\Services\\ZeptoMailService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::getStatus",
        "fqmn": "App\\Services\\ZeptoMailService@getStatus",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::isEnabled",
        "fqmn": "App\\Services\\ZeptoMailService@isEnabled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendBulkEmails",
        "fqmn": "App\\Services\\ZeptoMailService@sendBulkEmails",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendEmail",
        "fqmn": "App\\Services\\ZeptoMailService@sendEmail",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::claimNextPending",
        "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@claimNextPending",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::enqueue",
        "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@enqueue",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::process",
        "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@process",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/Zoho/ZohoOutboxDispatcher.php::App\\Services\\Zoho\\ZohoOutboxDispatcher::recoverStale",
        "fqmn": "App\\Services\\Zoho\\ZohoOutboxDispatcher@recoverStale",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::__construct",
        "fqmn": "App\\Services\\ZohoBooksService@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::accessToken",
        "fqmn": "App\\Services\\ZohoBooksService@accessToken",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::applyCreditNoteToInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@applyCreditNoteToInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::applyExistingCustomerAdvanceToInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@applyExistingCustomerAdvanceToInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::applyPaymentToInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@applyPaymentToInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::buildCompanyContactFingerprint",
        "fqmn": "App\\Services\\ZohoBooksService@buildCompanyContactFingerprint",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::cloneInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@cloneInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createCreditNoteForInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@createCreditNoteForInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createCreditNoteForInvoiceWithTotals",
        "fqmn": "App\\Services\\ZohoBooksService@createCreditNoteForInvoiceWithTotals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createCustomerAdvance",
        "fqmn": "App\\Services\\ZohoBooksService@createCustomerAdvance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@createInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createInvoiceWithMetadata",
        "fqmn": "App\\Services\\ZohoBooksService@createInvoiceWithMetadata",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createInvoiceWithTotals",
        "fqmn": "App\\Services\\ZohoBooksService@createInvoiceWithTotals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createJournalEntry",
        "fqmn": "App\\Services\\ZohoBooksService@createJournalEntry",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createPurchaseOrder",
        "fqmn": "App\\Services\\ZohoBooksService@createPurchaseOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createVendorBill",
        "fqmn": "App\\Services\\ZohoBooksService@createVendorBill",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::createVendorPaymentAndApply",
        "fqmn": "App\\Services\\ZohoBooksService@createVendorPaymentAndApply",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::dbOrConfig",
        "fqmn": "App\\Services\\ZohoBooksService@dbOrConfig",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::downloadCustomerAdvancePdf",
        "fqmn": "App\\Services\\ZohoBooksService@downloadCustomerAdvancePdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::downloadInvoicePdf",
        "fqmn": "App\\Services\\ZohoBooksService@downloadInvoicePdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::downloadPurchaseOrderPdf",
        "fqmn": "App\\Services\\ZohoBooksService@downloadPurchaseOrderPdf",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureCompanyConfiguredId",
        "fqmn": "App\\Services\\ZohoBooksService@ensureCompanyConfiguredId",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureContact",
        "fqmn": "App\\Services\\ZohoBooksService@ensureContact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureTaxForPercentage",
        "fqmn": "App\\Services\\ZohoBooksService@ensureTaxForPercentage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::ensureVendor",
        "fqmn": "App\\Services\\ZohoBooksService@ensureVendor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::extractZatcaUuidPih",
        "fqmn": "App\\Services\\ZohoBooksService@extractZatcaUuidPih",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::findInvoiceIdByNumber",
        "fqmn": "App\\Services\\ZohoBooksService@findInvoiceIdByNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::getCustomerAdvances",
        "fqmn": "App\\Services\\ZohoBooksService@getCustomerAdvances",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::getInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@getInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::getUnpaidInvoices",
        "fqmn": "App\\Services\\ZohoBooksService@getUnpaidInvoices",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::listCompanies",
        "fqmn": "App\\Services\\ZohoBooksService@listCompanies",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::listCreditNotesForInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@listCreditNotesForInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::listInvoicesModifiedSince",
        "fqmn": "App\\Services\\ZohoBooksService@listInvoicesModifiedSince",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::markInvoiceAsSent",
        "fqmn": "App\\Services\\ZohoBooksService@markInvoiceAsSent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::markPurchaseOrderAsIssued",
        "fqmn": "App\\Services\\ZohoBooksService@markPurchaseOrderAsIssued",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::recordPayment",
        "fqmn": "App\\Services\\ZohoBooksService@recordPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::refundCustomerPayment",
        "fqmn": "App\\Services\\ZohoBooksService@refundCustomerPayment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::resolveAccountIdByName",
        "fqmn": "App\\Services\\ZohoBooksService@resolveAccountIdByName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::syncInvoice",
        "fqmn": "App\\Services\\ZohoBooksService@syncInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::uploadBillAttachment",
        "fqmn": "App\\Services\\ZohoBooksService@uploadBillAttachment",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::upsertCompanyContact",
        "fqmn": "App\\Services\\ZohoBooksService@upsertCompanyContact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::upsertItem",
        "fqmn": "App\\Services\\ZohoBooksService@upsertItem",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoBooksService.php::App\\Services\\ZohoBooksService::voidCreditNote",
        "fqmn": "App\\Services\\ZohoBooksService@voidCreditNote",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateAdvance",
        "fqmn": "App\\Services\\ZohoDataValidator@validateAdvance",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateCompanyForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateCompanyForZoho",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateContact",
        "fqmn": "App\\Services\\ZohoDataValidator@validateContact",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateInvoice",
        "fqmn": "App\\Services\\ZohoDataValidator@validateInvoice",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateOrderForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateOrderForZoho",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validatePaymentApplication",
        "fqmn": "App\\Services\\ZohoDataValidator@validatePaymentApplication",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateProductForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateProductForZoho",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validatePurchaseOrder",
        "fqmn": "App\\Services\\ZohoDataValidator@validatePurchaseOrder",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::__construct",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::checkHealth",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@checkHealth",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::performHealthCheck",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@performHealthCheck",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Serv",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::sendAlert",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@sendAlert",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::diffInBusinessDays",
        "fqmn": "App\\Support\\BusinessTimeCalculator@diffInBusinessDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::diffInMinutes",
        "fqmn": "App\\Support\\BusinessTimeCalculator@diffInMinutes",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::resolveSettings",
        "fqmn": "App\\Support\\BusinessTimeCalculator@resolveSettings",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::clearActiveCompany",
        "fqmn": "App\\Support\\CompanyAccess@clearActiveCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::clearAllCachedContexts",
        "fqmn": "App\\Support\\CompanyAccess@clearAllCachedContexts",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getActiveCompanyContext",
        "fqmn": "App\\Support\\CompanyAccess@getActiveCompanyContext",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getActiveCompanyId",
        "fqmn": "App\\Support\\CompanyAccess@getActiveCompanyId",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getActiveCompanyName",
        "fqmn": "App\\Support\\CompanyAccess@getActiveCompanyName",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getActiveCompanyRole",
        "fqmn": "App\\Support\\CompanyAccess@getActiveCompanyRole",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::getReportingScopeUserIds",
        "fqmn": "App\\Support\\CompanyAccess@getReportingScopeUserIds",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::hasAnyCompanyRole",
        "fqmn": "App\\Support\\CompanyAccess@hasAnyCompanyRole",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::hasAssistantAssigned",
        "fqmn": "App\\Support\\CompanyAccess@hasAssistantAssigned",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isActiveCompanyExplicit",
        "fqmn": "App\\Support\\CompanyAccess@isActiveCompanyExplicit",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isEmployee",
        "fqmn": "App\\Support\\CompanyAccess@isEmployee",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isEmployer",
        "fqmn": "App\\Support\\CompanyAccess@isEmployer",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isEmployerOrManager",
        "fqmn": "App\\Support\\CompanyAccess@isEmployerOrManager",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isManager",
        "fqmn": "App\\Support\\CompanyAccess@isManager",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isOfficeAssistant",
        "fqmn": "App\\Support\\CompanyAccess@isOfficeAssistant",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isSuperAdmin",
        "fqmn": "App\\Support\\CompanyAccess@isSuperAdmin",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::isTeamLeader",
        "fqmn": "App\\Support\\CompanyAccess@isTeamLeader",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/CompanyAccess.php::App\\Support\\CompanyAccess::setActiveCompany",
        "fqmn": "App\\Support\\CompanyAccess@setActiveCompany",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/ControlRoom/WidgetRenderTracker.php::App\\Support\\ControlRoom\\WidgetRenderTracker::failures",
        "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@failures",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/ControlRoom/WidgetRenderTracker.php::App\\Support\\ControlRoom\\WidgetRenderTracker::reset",
        "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@reset",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/EmailTemplateCatalog.php::App\\Support\\EmailTemplateCatalog::all",
        "fqmn": "App\\Support\\EmailTemplateCatalog@all",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/EmployerNav.php::App\\Support\\EmployerNav::groups",
        "fqmn": "App\\Support\\EmployerNav@groups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/EmployerNav.php::App\\Support\\EmployerNav::items",
        "fqmn": "App\\Support\\EmployerNav@items",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::expand",
        "fqmn": "App\\Support\\FeatureBundles@expand",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::expandBooleans",
        "fqmn": "App\\Support\\FeatureBundles@expandBooleans",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::map",
        "fqmn": "App\\Support\\FeatureBundles@map",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureGateViewData.php::App\\Support\\FeatureGateViewData::compute",
        "fqmn": "App\\Support\\FeatureGateViewData@compute",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::activate",
        "fqmn": "App\\Support\\FeaturePreview@activate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::activeWindow",
        "fqmn": "App\\Support\\FeaturePreview@activeWindow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::canActivateNow",
        "fqmn": "App\\Support\\FeaturePreview@canActivateNow",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::canStartNowForUser",
        "fqmn": "App\\Support\\FeaturePreview@canStartNowForUser",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::eligible",
        "fqmn": "App\\Support\\FeaturePreview@eligible",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::isEligibleRole",
        "fqmn": "App\\Support\\FeaturePreview@isEligibleRole",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::start",
        "fqmn": "App\\Support\\FeaturePreview@start",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::all",
        "fqmn": "App\\Support\\FeatureRegistry@all",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::exists",
        "fqmn": "App\\Support\\FeatureRegistry@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::isPreviewable",
        "fqmn": "App\\Support\\FeatureRegistry@isPreviewable",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::allSlugs",
        "fqmn": "App\\Support\\Features\\FeatureGroups@allSlugs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::formPathsForGroup",
        "fqmn": "App\\Support\\Features\\FeatureGroups@formPathsForGroup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::groups",
        "fqmn": "App\\Support\\Features\\FeatureGroups@groups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::masterChildren",
        "fqmn": "App\\Support\\Features\\FeatureGroups@masterChildren",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::masterPaths",
        "fqmn": "App\\Support\\Features\\FeatureGroups@masterPaths",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::computeMasters",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::flattenOverrides",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@flattenOverrides",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::groupOverrides",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@groupOverrides",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::toBool",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@toBool",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::all",
        "fqmn": "App\\Support\\Features\\Features@all",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::allSlugs",
        "fqmn": "App\\Support\\Features\\Features@allSlugs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::bundleAliasSlugs",
        "fqmn": "App\\Support\\Features\\Features@bundleAliasSlugs",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::exists",
        "fqmn": "App\\Support\\Features\\Features@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::formPathsForGroup",
        "fqmn": "App\\Support\\Features\\Features@formPathsForGroup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::groupAliases",
        "fqmn": "App\\Support\\Features\\Features@groupAliases",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::groups",
        "fqmn": "App\\Support\\Features\\Features@groups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::isPreviewable",
        "fqmn": "App\\Support\\Features\\Features@isPreviewable",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::masterChildren",
        "fqmn": "App\\Support\\Features\\Features@masterChildren",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::masterPaths",
        "fqmn": "App\\Support\\Features\\Features@masterPaths",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureToggleSchemas.php::App\\Support\\Features\\FeatureToggleSchemas::connectGroup",
        "fqmn": "App\\Support\\Features\\FeatureToggleSchemas@connectGroup",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Features/FeatureToggleSchemas.php::App\\Support\\Features\\FeatureToggleSchemas::freeSubscriptionGroups",
        "fqmn": "App\\Support\\Features\\FeatureToggleSchemas@freeSubscriptionGroups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureToggleForm.php::App\\Support\\FeatureToggleForm::schema",
        "fqmn": "App\\Support\\FeatureToggleForm@schema",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::canEditPage",
        "fqmn": "App\\Support\\FeatureVisibility@canEditPage",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::canSeeField",
        "fqmn": "App\\Support\\FeatureVisibility@canSeeField",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::deriveFeatureSlugFromEmployerNav",
        "fqmn": "App\\Support\\FeatureVisibility@deriveFeatureSlugFromEmployerNav",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::canAccessClass",
        "fqmn": "App\\Support\\GateManifest@canAccessClass",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::check",
        "fqmn": "App\\Support\\GateManifest@check",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::entryFor",
        "fqmn": "App\\Support\\GateManifest@entryFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::featureKeyFor",
        "fqmn": "App\\Support\\GateManifest@featureKeyFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::fieldFeatureKeyFor",
        "fqmn": "App\\Support\\GateManifest@fieldFeatureKeyFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::groupKeysForPanel",
        "fqmn": "App\\Support\\GateManifest@groupKeysForPanel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::navItemsForPanel",
        "fqmn": "App\\Support\\GateManifest@navItemsForPanel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::resolvePromotionUrl",
        "fqmn": "App\\Support\\GateManifest@resolvePromotionUrl",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::visibleToRole",
        "fqmn": "App\\Support\\GateManifest@visibleToRole",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GuidedBadges.php::App\\Support\\GuidedBadges::templates",
        "fqmn": "App\\Support\\GuidedBadges@templates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/GuidedCompanyValues.php::App\\Support\\GuidedCompanyValues::templates",
        "fqmn": "App\\Support\\GuidedCompanyValues@templates",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::derivePanelFromPath",
        "fqmn": "App\\Support\\Help@derivePanelFromPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::findRelevantByPath",
        "fqmn": "App\\Support\\Help@findRelevantByPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::formatFewshots",
        "fqmn": "App\\Support\\Help@formatFewshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadCapabilities",
        "fqmn": "App\\Support\\Help@loadCapabilities",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadFewshots",
        "fqmn": "App\\Support\\Help@loadFewshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadWorkflows",
        "fqmn": "App\\Support\\Help@loadWorkflows",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::pickFewshotsForPath",
        "fqmn": "App\\Support\\Help@pickFewshotsForPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::pickWorkflowsForPath",
        "fqmn": "App\\Support\\Help@pickWorkflowsForPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::saveFewshots",
        "fqmn": "App\\Support\\Help@saveFewshots",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::saveWorkflows",
        "fqmn": "App\\Support\\Help@saveWorkflows",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::summarizeCapability",
        "fqmn": "App\\Support\\Help@summarizeCapability",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::hrefFor",
        "fqmn": "App\\Support\\HelpId@hrefFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::idFor",
        "fqmn": "App\\Support\\HelpId@idFor",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::keys",
        "fqmn": "App\\Support\\HelpId@keys",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::manifest",
        "fqmn": "App\\Support\\HelpId@manifest",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::get",
        "fqmn": "App\\Support\\HelpMemory@get",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::hasCoveredAll",
        "fqmn": "App\\Support\\HelpMemory@hasCoveredAll",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::put",
        "fqmn": "App\\Support\\HelpMemory@put",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::rememberCategories",
        "fqmn": "App\\Support\\HelpMemory@rememberCategories",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HelpTickets.php::App\\Support\\HelpTickets::log",
        "fqmn": "App\\Support\\HelpTickets@log",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/HireReadinessAccess.php::App\\Support\\HireReadinessAccess::canAccess",
        "fqmn": "App\\Support\\HireReadinessAccess@canAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/HtmlSanitizer.php::App\\Support\\HtmlSanitizer::clean",
        "fqmn": "App\\Support\\HtmlSanitizer@clean",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/HtmlSanitizer.php::App\\Support\\HtmlSanitizer::resetForTesting",
        "fqmn": "App\\Support\\HtmlSanitizer@resetForTesting",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/JobsAccess.php::App\\Support\\JobsAccess::canAccess",
        "fqmn": "App\\Support\\JobsAccess@canAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/JobsAccess.php::App\\Support\\JobsAccess::ensure",
        "fqmn": "App\\Support\\JobsAccess@ensure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/LandingResolver.php::App\\Support\\LandingResolver::resolveLandingPath",
        "fqmn": "App\\Support\\LandingResolver@resolveLandingPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/LandingResolver.php::App\\Support\\LandingResolver::setActiveCompanyContext",
        "fqmn": "App\\Support\\LandingResolver@setActiveCompanyContext",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatDateTime",
        "fqmn": "App\\Support\\Locale@formatDateTime",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatNumber",
        "fqmn": "App\\Support\\Locale@formatNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatPercent",
        "fqmn": "App\\Support\\Locale@formatPercent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::assertLogged",
        "fqmn": "App\\Support\\Logging\\LogFake@assertLogged",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::assertNotLogged",
        "fqmn": "App\\Support\\Logging\\LogFake@assertNotLogged",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::channel",
        "fqmn": "App\\Support\\Logging\\LogFake@channel",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::fake",
        "fqmn": "App\\Support\\Logging\\LogFake@fake",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::logged",
        "fqmn": "App\\Support\\Logging\\LogFake@logged",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::stack",
        "fqmn": "App\\Support\\Logging\\LogFake@stack",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::__construct",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPath",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPathForConversions",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForConversions",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPathForResponsiveImages",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForResponsiveImages",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/MetricContract.php::App\\Support\\MetricContract::factory",
        "fqmn": "App\\Support\\MetricContract@factory",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/MetricContract.php::App\\Support\\MetricContract::validate",
        "fqmn": "App\\Support\\MetricContract@validate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Money.php::App\\Support\\Money::formatSarFromHalalas",
        "fqmn": "App\\Support\\Money@formatSarFromHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Money.php::App\\Support\\Money::halalasFromSar",
        "fqmn": "App\\Support\\Money@halalasFromSar",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/MoneyFormatter.php::App\\Support\\MoneyFormatter::format",
        "fqmn": "App\\Support\\MoneyFormatter@format",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/MoneyFormatter.php::App\\Support\\MoneyFormatter::halalas",
        "fqmn": "App\\Support\\MoneyFormatter@halalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/MoneyFormatter.php::App\\Support\\MoneyFormatter::halalasNumber",
        "fqmn": "App\\Support\\MoneyFormatter@halalasNumber",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildAdminGroups",
        "fqmn": "App\\Support\\NavBuilder@buildAdminGroups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildAdminItems",
        "fqmn": "App\\Support\\NavBuilder@buildAdminItems",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildGroups",
        "fqmn": "App\\Support\\NavBuilder@buildGroups",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildItems",
        "fqmn": "App\\Support\\NavBuilder@buildItems",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/NavSeen.php::App\\Support\\NavSeen::getLastSeen",
        "fqmn": "App\\Support\\NavSeen@getLastSeen",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/NavSeen.php::App\\Support\\NavSeen::markSeen",
        "fqmn": "App\\Support\\NavSeen@markSeen",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Notifications/NotificationSender.php::App\\Support\\Notifications\\NotificationSender::sendForSubscriptionEvent",
        "fqmn": "App\\Support\\Notifications\\NotificationSender@sendForSubscriptionEvent",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/PciRedactor.php::App\\Support\\PciRedactor::sanitize",
        "fqmn": "App\\Support\\PciRedactor@sanitize",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/FeatureCatalog.php::App\\Support\\PlanVersions\\FeatureCatalog::seats",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@seats",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/FeatureCatalog.php::App\\Support\\PlanVersions\\FeatureCatalog::trial",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@trial",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::collect",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persist",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persist",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persistAcrossIntervals",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persistAcrossIntervals",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::persistFromBooleans",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@persistFromBooleans",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::prefill",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@prefill",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::collectFormMeta",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@collectFormMeta",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::extractSeatLimits",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractSeatLimits",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::extractTrialDays",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractTrialDays",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::prefillFormDefaults",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@prefillFormDefaults",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::sync",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@sync",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::canAccess",
        "fqmn": "App\\Support\\RefreshmentsAccess@canAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::canNavigate",
        "fqmn": "App\\Support\\RefreshmentsAccess@canNavigate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::ensure",
        "fqmn": "App\\Support\\RefreshmentsAccess@ensure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::__construct",
        "fqmn": "App\\Support\\ResettingUserQuery@__construct",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::count",
        "fqmn": "App\\Support\\ResettingUserQuery@count",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::exists",
        "fqmn": "App\\Support\\ResettingUserQuery@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::where",
        "fqmn": "App\\Support\\ResettingUserQuery@where",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/RewardsAccess.php::App\\Support\\RewardsAccess::isEnabled",
        "fqmn": "App\\Support\\RewardsAccess@isEnabled",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/RewardsAccess.php::App\\Support\\RewardsAccess::pointValueHalalas",
        "fqmn": "App\\Support\\RewardsAccess@pointValueHalalas",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Roles.php::App\\Support\\Roles::isSuperAdmin",
        "fqmn": "App\\Support\\Roles@isSuperAdmin",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Roles.php::App\\Support\\Roles::isSupplier",
        "fqmn": "App\\Support\\Roles@isSupplier",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::codeToName",
        "fqmn": "App\\Support\\SaudiRegions@codeToName",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::nameToCode",
        "fqmn": "App\\Support\\SaudiRegions@nameToCode",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::options",
        "fqmn": "App\\Support\\SaudiRegions@options",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Slugs/UniqueSlugGenerator.php::App\\Support\\Slugs\\UniqueSlugGenerator::generate",
        "fqmn": "App\\Support\\Slugs\\UniqueSlugGenerator@generate",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Slugs/UniqueSlugGenerator.php::App\\Support\\Slugs\\UniqueSlugGenerator::slugify",
        "fqmn": "App\\Support\\Slugs\\UniqueSlugGenerator@slugify",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::delete",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@delete",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::exists",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@exists",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::fullPath",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@fullPath",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::read",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@read",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::store",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@store",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/Storage/PdfStorageGateway.php::App\\Support\\Storage\\PdfStorageGateway::streamDownload",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@streamDownload",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/StoreAccess.php::App\\Support\\StoreAccess::canAccess",
        "fqmn": "App\\Support\\StoreAccess@canAccess",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/StoreAccess.php::App\\Support\\StoreAccess::ensure",
        "fqmn": "App\\Support\\StoreAccess@ensure",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/Subscriptions/SubscriptionStatusSnapshot.php::App\\Support\\Subscriptions\\SubscriptionStatusSnapshot::for",
        "fqmn": "App\\Support\\Subscriptions\\SubscriptionStatusSnapshot@for",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::getManageableUsers",
        "fqmn": "App\\Support\\TeamScoping@getManageableUsers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::getManagerTeamMembers",
        "fqmn": "App\\Support\\TeamScoping@getManagerTeamMembers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::getTeamLeaderMembers",
        "fqmn": "App\\Support\\TeamScoping@getTeamLeaderMembers",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::scopeTasksQuery",
        "fqmn": "App\\Support\\TeamScoping@scopeTasksQuery",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/TeamScoping.php::App\\Support\\TeamScoping::scopeUsersQuery",
        "fqmn": "App\\Support\\TeamScoping@scopeUsersQuery",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/UserName.php::App\\Support\\UserName::render",
        "fqmn": "App\\Support\\UserName@render",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/VatCalculator.php::App\\Support\\VatCalculator::netFromGrossHalalas",
        "fqmn": "App\\Support\\VatCalculator@netFromGrossHalalas",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/VatCalculator.php::App\\Support\\VatCalculator::vatOnHalalas",
        "fqmn": "App\\Support\\VatCalculator@vatOnHalalas",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/Wallet/WalletFreezeGuard.php::App\\Support\\Wallet\\WalletFreezeGuard::assertNotFrozen",
        "fqmn": "App\\Support\\Wallet\\WalletFreezeGuard@assertNotFrozen",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/WidgetResultContract.php::App\\Support\\WidgetResultContract::normalizePayload",
        "fqmn": "App\\Support\\WidgetResultContract@normalizePayload",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "method::app/Support/WidgetResultContract.php::App\\Support\\WidgetResultContract::normalizeStatus",
        "fqmn": "App\\Support\\WidgetResultContract@normalizeStatus",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "helper_namespace",
          "recent_git_blame_lt_threshold_days"
        ],
        "explanation": "Zero callers but flagged for safety: recent addition. Recheck next audit.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_method::app/Supp",
        "kind": "DEAD_CODE_DELETE",
        "surface_id": "method::app/Support/WidgetVisualHelper.php::App\\Support\\WidgetVisualHelper::resolve",
        "fqmn": "App\\Support\\WidgetVisualHelper@resolve",
        "bucket": "DELETE",
        "signals": [
          "zero_callers",
          "helper_namespace"
        ],
        "explanation": "Zero callers, not recent, and helper-namespace path. Safe to remove.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/health::App\\Http\\Controllers\\Api\\HealthController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/ap",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/api.php::get::/public/pricing-plans::closure",
        "fqmn": "route::routes/api.php::get::/public/pricing-plans::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/au",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/auth.php::get::/register::App\\Http\\Controllers\\Auth\\RegisteredUserController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/au",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/auth.php::get::/verify-email::App\\Http\\Controllers\\Auth\\EmailVerificationPromptController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/au",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/auth.php::get::/verify-email/{id}/{hash}::App\\Http\\Controllers\\Auth\\PublicVerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/in",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/internal_governance.php::get::/metrics/governance::closure",
        "fqmn": "route::routes/internal_governance.php::get::/metrics/governance::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/te",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "fqmn": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "fqmn": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web_test_login.php::get::/magic-login::closure",
        "fqmn": "route::routes/web_test_login.php::get::/magic-login::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/::App\\Http\\Controllers\\LandingController::__invoke",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/::App\\Http\\Controllers\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/::closure",
        "fqmn": "route::routes/web.php::get::/::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/' . $__panelSlug . '/login::closure",
        "fqmn": "route::routes/web.php::get::/' . $__panelSlug . '/login::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/assets/riyal.svg::closure",
        "fqmn": "route::routes/web.php::get::/assets/riyal.svg::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/auth/dev/setup::closure",
        "fqmn": "route::routes/web.php::get::/auth/dev/setup::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/billing/update-card/{cardId}::App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/dashboard::closure",
        "fqmn": "route::routes/web.php::get::/dashboard::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/dev/cr::App\\Filament\\Employer\\Pages\\ControlRoom::__invoke",
        "fqmn": "App\\Filament\\Employer\\Pages\\ControlRoom@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/privacy-policy::closure",
        "fqmn": "route::routes/web.php::get::/privacy-policy::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/setup::App\\Http\\Controllers\\Api\\SetupController::setup",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/setup/kpi::App\\Http\\Controllers\\Api\\SetupController::kpi",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/setup/test::App\\Http\\Controllers\\Api\\SetupController::test",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/temp/fix-recognition-cascade::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::fixCascadeBug",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/temp/migrate-recognition::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::debugMigrate",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/temp/recognition-company-check::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::companyCheck",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/temp/recompute-recognition-cascades::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::recomputeCascades",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::get::/terms-of-service::closure",
        "fqmn": "route::routes/web.php::get::/terms-of-service::closure",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::post::/employer/plan-checkout/one-click-upgrade::App\\Http\\Controllers\\Employer\\PlanCheckoutController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "c_route::routes/we",
        "kind": "DEAD_CODE_DEFER",
        "surface_id": "route::routes/web.php::post::/employer/subscriptions/{subscription}/apply-downgrade::App\\Http\\Controllers\\Employer\\SubscriptionController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@__invoke",
        "bucket": "DEFER",
        "signals": [
          "zero_callers",
          "controller_namespace",
          "fallback_safety_defer"
        ],
        "explanation": "No conclusive triage signal — defaulting to DEFER (safety). Manual review needed.",
        "applied": false,
        "requires_human_decision": true
      }
    ],
    "duplication": [
      {
        "candidate_id": "d_a150d153",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_001",
        "fqmn": "App\\Console\\Commands\\BackfillMissingPlanInvoices@handle",
        "canonical": "App\\Console\\Commands\\AddUserToCompany@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\AddUserToCompany@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_71608377",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_002",
        "fqmn": "App\\Console\\Commands\\DryRunLatestImport@handle",
        "canonical": "App\\Console\\Commands\\ApplyLatestImport@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\ApplyLatestImport@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7d1c8821",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_003",
        "fqmn": "App\\Console\\Commands\\MetricsAuditCommand@handle",
        "canonical": "App\\Console\\Commands\\AuditTrailManagement@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\AuditTrailManagement@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0d2bdacf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_004",
        "fqmn": "App\\Console\\Commands\\SeedTomatoSitesSettings@handle",
        "canonical": "App\\Console\\Commands\\BackfillPlanInvoice@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\BackfillPlanInvoice@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f91a73d5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@index",
        "canonical": "App\\Console\\Commands\\CheckZohoIntegrationHealth@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\CheckZohoIntegrationHealth@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ef29e7c7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastOn",
        "canonical": "App\\Console\\Commands\\CheckZohoIntegrationHealth@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\CheckZohoIntegrationHealth@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3ffd0e8a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_005",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastWith",
        "canonical": "App\\Console\\Commands\\CheckZohoIntegrationHealth@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\CheckZohoIntegrationHealth@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0f1d96e9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_006",
        "fqmn": "App\\Console\\Commands\\Occasions\\BackfillManagerNotices@handle",
        "canonical": "App\\Console\\Commands\\EnableHireReadinessCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\EnableHireReadinessCommand@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_aca51dda",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_007",
        "fqmn": "App\\Console\\Commands\\ReconcileTapOrphans@handle",
        "canonical": "App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d5a6c025",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_008",
        "fqmn": "App\\Console\\Commands\\NotifyTrialEndingSoonCommand@handle",
        "canonical": "App\\Console\\Commands\\ExpireTrialsCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\ExpireTrialsCommand@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3ef8e146",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Console\\Commands\\OcrAnalyticsReport@handle",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\FixOrderVendorPosRecords@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3c513745",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Console\\Commands\\TestPoReferences@handle",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\FixOrderVendorPosRecords@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cfd6979b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Services\\FcmService@__construct",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\FixOrderVendorPosRecords@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_642ca037",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Services\\PushService@__construct",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\FixOrderVendorPosRecords@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8271bb3a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Services\\SalesCommissionService@__construct",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\FixOrderVendorPosRecords@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7b1ff585",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Services\\TurnstileService@__construct",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\FixOrderVendorPosRecords@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_24c6d319",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Services\\ZohoBooksService@__construct",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\FixOrderVendorPosRecords@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5645d749",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_009",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@__construct",
        "canonical": "App\\Console\\Commands\\FixOrderVendorPosRecords@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\FixOrderVendorPosRecords@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_63e767a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_010",
        "fqmn": "App\\Console\\Commands\\UserCheckEmail@handle",
        "canonical": "App\\Console\\Commands\\GenerateApiToken@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\GenerateApiToken@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3c44b6ef",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Console\\Commands\\WidgetsCacheCommand@handle",
        "canonical": "App\\Console\\Commands\\HelpSelfTest@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\HelpSelfTest@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bc5f57d8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Console\\Commands\\WidgetsClearCommand@handle",
        "canonical": "App\\Console\\Commands\\HelpSelfTest@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\HelpSelfTest@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b86f6450",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_011",
        "fqmn": "App\\Console\\Commands\\WuddCacheRefresh@handle",
        "canonical": "App\\Console\\Commands\\HelpSelfTest@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\HelpSelfTest@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cb4981c9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Console\\Commands\\MetricsRecomputeRangeCommand@handle",
        "canonical": "App\\Console\\Commands\\MetricsComputeCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\MetricsComputeCommand@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b7e6035a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Console\\Commands\\MetricsRefreshTodayCommand@handle",
        "canonical": "App\\Console\\Commands\\MetricsComputeCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\MetricsComputeCommand@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bbe90fb3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeDayCommand@handle",
        "canonical": "App\\Console\\Commands\\MetricsComputeCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\MetricsComputeCommand@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8b9d6484",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeRangeCommand@handle",
        "canonical": "App\\Console\\Commands\\MetricsComputeCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\MetricsComputeCommand@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2203eef2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_012",
        "fqmn": "App\\Domains\\Metrics\\Commands\\RefreshTodayCommand@handle",
        "canonical": "App\\Console\\Commands\\MetricsComputeCommand@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\MetricsComputeCommand@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2d9bfdb8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_013",
        "fqmn": "App\\Console\\Commands\\MonitorStuckOrders@handle",
        "canonical": "App\\Console\\Commands\\MonitorStuckCheckouts@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\MonitorStuckCheckouts@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_938d90ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_014",
        "fqmn": "App\\Console\\Commands\\SeedDemoAvatars@handle",
        "canonical": "App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_80d81898",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_015",
        "fqmn": "App\\Console\\Commands\\PruneAutomationHistory@handle",
        "canonical": "App\\Console\\Commands\\Occasions\\CleanupOldEvents@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\Occasions\\CleanupOldEvents@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0c6771e6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_016",
        "fqmn": "App\\Console\\Commands\\Occasions\\QueueHolidays@handle",
        "canonical": "App\\Console\\Commands\\Occasions\\QueueDailyPersonal@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\Occasions\\QueueDailyPersonal@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b1ed20bb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_016",
        "fqmn": "App\\Console\\Commands\\Occasions\\QueueWeeklyDigests@handle",
        "canonical": "App\\Console\\Commands\\Occasions\\QueueDailyPersonal@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\Occasions\\QueueDailyPersonal@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7f261569",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_017",
        "fqmn": "App\\Console\\Commands\\ThreadsMigrateLegacyFields@handle",
        "canonical": "App\\Console\\Commands\\PopulateDocumentFieldIndex@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\PopulateDocumentFieldIndex@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b86364c0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Console\\Commands\\ReconcileSubscriptions@handle",
        "canonical": "App\\Console\\Commands\\ReconcileOrderInvoices@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\ReconcileOrderInvoices@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2385d4af",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_018",
        "fqmn": "App\\Console\\Commands\\ScanZohoSideDrift@handle",
        "canonical": "App\\Console\\Commands\\ReconcileOrderInvoices@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\ReconcileOrderInvoices@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d7866551",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_019",
        "fqmn": "App\\Console\\Commands\\TestWalletAdvances@handle",
        "canonical": "App\\Console\\Commands\\TestInvoicePayments@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Console\\Commands\\TestInvoicePayments@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5cb62e44",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_020",
        "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@__construct",
        "canonical": "App\\Domains\\Decisions\\ExecutiveBriefService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Decisions\\ExecutiveBriefService@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4df03fee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_021",
        "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@generateWeekly",
        "canonical": "App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_43002be0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_022",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@__construct",
        "canonical": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8fbc6cb8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_023",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@__construct",
        "canonical": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cfe5a72b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_023",
        "fqmn": "App\\Jobs\\SeedGuidedBadges@__construct",
        "canonical": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d253adae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_023",
        "fqmn": "App\\Jobs\\SeedGuidedCompanyValues@__construct",
        "canonical": "App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Jobs\\ComputePredictiveDailyJob@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a44a3fdc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@riyadhDay",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@endUtc",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@endUtc. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fe863a07",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_024",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@startUtc",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@endUtc",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@endUtc. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_475568c6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9824f035",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f5bf4efc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_726c9b47",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getModelLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a23c2cf6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getNavigationLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d8b74fc1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_663a54a9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_36c188ac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9b54e84f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5b79911a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_025",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@throttleKey",
        "canonical": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_60020167",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_026",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@form",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@form. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_06bbf3d6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getRelations",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1d95aba8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3ceab7f5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getRelations",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_aa4f6014",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getPages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b65c3ac1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getPages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bdc4f30e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@getPages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_32af43f6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3fb6ac0b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getRelations",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f08dfdd8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@getPages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9cb4ee7e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@messages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4d92b6a5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0697eb8c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_62938ea3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@messages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ee8013c2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_76af3203",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@messages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1a8937a2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e307beb7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\ProfileUpdateRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_52ff039d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\StoreGroupRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_79050489",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\StoreMessageRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_474bfbaa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\StoreRecognitionRequest@messages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_961c826b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\StoreTaskForDocumentRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_21b10bd8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@messages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_99715a43",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e2859967",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\UpdateGroupRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_866e935a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@messages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1a437c91",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4776ca86",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@messages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1141dbbd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_46c4c4b8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@messages",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_19b099a3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@rules",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1021682b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\Ai\\ResolvedAiAction@toArray",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fbfed2b1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@toArray",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d6c065d5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@toArray",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d83684a2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@toArray",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_36ec98ba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@toArray",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_03fe4a97",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@toArray",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c9f1fde0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@signals",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5617727e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\OcrClient@getConfig",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_97a95c2e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@categories",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2a3c8e34",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@consentKeys",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2bb3ba2a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@all",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_580072e3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\ZeptoMailService@getStatus",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_392bcd13",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Services\\ZohoBooksService@dbOrConfig",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b8ce3e10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Support\\EmailTemplateCatalog@all",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ea5cb6a4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Support\\FeatureRegistry@all",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e9bfb1e1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Support\\Features\\Features@groupAliases",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ef320a71",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Support\\Features\\Features@masterChildren",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_13c297f9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Support\\GuidedBadges@templates",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f68c5404",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Support\\GuidedCompanyValues@templates",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ac37d87f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@seats",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_29e6bcad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_027",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@trial",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0c0b0b91",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCompaniesResource@table. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e4c3c8fb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_028",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@table",
        "canonical": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@table",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\Sales\\Resources\\MyCompaniesResource@table. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_aa279028",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_029",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@form",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4fa86122",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_029",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@form",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4ca2f8f8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_029",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@form",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_98a0a547",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_030",
        "fqmn": "App\\Support\\FeatureBundles@map",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6760307c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_031",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDeleteAny",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_10efd239",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_031",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canCreate",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7e21ab10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_031",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDeleteAny",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6d16cef2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_031",
        "fqmn": "App\\Support\\RewardsAccess@isEnabled",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7f0a1886",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_487307ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canViewAny",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cf84dfa0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_10569bb8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_133e2d7d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canViewAny",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d95a0d16",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_032",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@shouldRegisterNavigation",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b672fa41",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_033",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getEloquentQuery",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4df57101",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_034",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDelete",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7c3ee821",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_035",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@infolist",
        "canonical": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_133d0fec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@show",
        "canonical": "App\\Http\\Controllers\\Api\\AuthController@user",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\AuthController@user. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8b1a6388",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_036",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@show",
        "canonical": "App\\Http\\Controllers\\Api\\AuthController@user",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\AuthController@user. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8f4496f6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_037",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@pause",
        "canonical": "App\\Http\\Controllers\\Api\\AutomationController@activate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\AutomationController@activate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cfa29391",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_038",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@runs",
        "canonical": "App\\Http\\Controllers\\Api\\AutomationController@audits",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\AutomationController@audits. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_44fd1f6c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_039",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@index",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@companyStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7ee3fd05",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_039",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@index",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@companyStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c0416309",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_039",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@myTargets",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@companyStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b067f550",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_039",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@index",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@companyStats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_895c1329",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_040",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@update",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8cc3ebd1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@index",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@stats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ce633194",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_041",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@show",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@stats",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@stats. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4675faea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@store",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@store. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8949aad0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@store",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@store. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bc5f4cb5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@store",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@store. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_660a60a7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@store",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@store. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9a977513",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@store",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@store. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0e006ff5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_042",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@store",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeController@store. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_61507d2b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_043",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@update",
        "canonical": "App\\Http\\Controllers\\Api\\BadgeTargetController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\BadgeTargetController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d9007c09",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@me",
        "canonical": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CartValidationController@check. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ef383fbc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@index",
        "canonical": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CartValidationController@check. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3367731a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@index",
        "canonical": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CartValidationController@check. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_99052989",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@invoices",
        "canonical": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CartValidationController@check. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_98deb17c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@orders",
        "canonical": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CartValidationController@check. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0458439d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@products",
        "canonical": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CartValidationController@check. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1c140b28",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_044",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUserController@index",
        "canonical": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CartValidationController@check. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0d89f11a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_045",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@teams",
        "canonical": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7a363904",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_045",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@users",
        "canonical": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1e76808a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_046",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@update",
        "canonical": "App\\Http\\Controllers\\Api\\DepartmentController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\DepartmentController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6ebf0e5f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@index",
        "canonical": "App\\Http\\Controllers\\Api\\DepartmentController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\DepartmentController@index. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8c296551",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@index",
        "canonical": "App\\Http\\Controllers\\Api\\DepartmentController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\DepartmentController@index. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e1bf5509",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_047",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@index",
        "canonical": "App\\Http\\Controllers\\Api\\DepartmentController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\DepartmentController@index. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_006ca04b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_048",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "canonical": "App\\Http\\Controllers\\Api\\HealthController@status",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\HealthController@status. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_286aec17",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_049",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listJobs",
        "canonical": "App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3210ac85",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_050",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@index",
        "canonical": "App\\Http\\Controllers\\Api\\LeaderboardController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\LeaderboardController@index. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0a6e439d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_050",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@feed",
        "canonical": "App\\Http\\Controllers\\Api\\LeaderboardController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\LeaderboardController@index. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1184b379",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_051",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@thread",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7b1b84c4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_052",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@changePassword",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c34fecba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_053",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@store",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_68b13ad3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_68b13ad3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0f69cdd4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0f69cdd4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a9bd1ae7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a9bd1ae7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_054",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_eea232e4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_055",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@index",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_543c1eb2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_056",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@complete",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_adb90936",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_056",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@reject",
        "canonical": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_876b6571",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_057",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastWith",
        "canonical": "App\\Http\\Controllers\\Api\\NotificationController@broadcastOn",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\NotificationController@broadcastOn. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0bad387f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_058",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAllAsRead",
        "canonical": "App\\Http\\Controllers\\Api\\NotificationController@count",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\NotificationController@count. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_593a4811",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_059",
        "fqmn": "App\\Http\\Controllers\\Api\\OccasionController@update",
        "canonical": "App\\Http\\Controllers\\Api\\OccasionController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\OccasionController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9f5ba15b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e14706ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e14706ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b58e1195",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b58e1195",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2a3226fb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2a3226fb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_060",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1c5b6068",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_061",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@__construct",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionController@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f6ea84a5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_062",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@update",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_31d72b79",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_063",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listComments",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@listAttachments",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionController@listAttachments. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3b4957c3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@show",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@react",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionController@react. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0f58c9f4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_064",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@unreact",
        "canonical": "App\\Http\\Controllers\\Api\\RecognitionController@react",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RecognitionController@react. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bf7abbf6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_065",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@update",
        "canonical": "App\\Http\\Controllers\\Api\\ReferralController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\ReferralController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_31b2d47f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_066",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@update",
        "canonical": "App\\Http\\Controllers\\Api\\RewardController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RewardController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_42500972",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_067",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@show",
        "canonical": "App\\Http\\Controllers\\Api\\RewardController@redeem",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\RewardController@redeem. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_11c0da06",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_068",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyUpgrade",
        "canonical": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e90754c7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_069",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewUpgrade",
        "canonical": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b6b47e2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_070",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listWatchers",
        "canonical": "App\\Http\\Controllers\\Api\\TaskController@listAttachments",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\TaskController@listAttachments. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c7ecfef9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_071",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@update",
        "canonical": "App\\Http\\Controllers\\Api\\TeamController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\TeamController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_27bc57a2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_072",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@update",
        "canonical": "App\\Http\\Controllers\\Api\\ValueController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Api\\ValueController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_19b4493b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_073",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create",
        "canonical": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_350e5579",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_074",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store",
        "canonical": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_795db418",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_075",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "canonical": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7bcbf9e3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_076",
        "fqmn": "App\\Http\\Controllers\\ProfileController@edit",
        "canonical": "App\\Http\\Controllers\\Auth\\NewPasswordController@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\NewPasswordController@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_57daf059",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_077",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "canonical": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_250cffdd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_078",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "canonical": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Auth\\RegisteredUserController@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d8d5e068",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_079",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "canonical": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_edd89cbf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Http\\Controllers\\CartController@index",
        "canonical": "App\\Http\\Controllers\\CartController@add",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\CartController@add. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d972a148",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Http\\Controllers\\CartController@update",
        "canonical": "App\\Http\\Controllers\\CartController@add",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\CartController@add. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_676dce77",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_080",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@billing",
        "canonical": "App\\Http\\Controllers\\CartController@add",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\CartController@add. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b37c8b36",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_081",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@pause",
        "canonical": "App\\Http\\Controllers\\Employer\\AutomationWebController@activate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Employer\\AutomationWebController@activate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a6631ac8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_082",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardsPolicy",
        "canonical": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0a109e6f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_083",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardTemplates",
        "canonical": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a7c22a2b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_084",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@resumeSubscription",
        "canonical": "App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_650c3740",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_085",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyUpgrade",
        "canonical": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0e879486",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_086",
        "fqmn": "App\\Http\\Controllers\\HelpController@health",
        "canonical": "App\\Http\\Controllers\\HelpController@dmTest",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\HelpController@dmTest. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9e092c3e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_087",
        "fqmn": "App\\Http\\Controllers\\RfqController@thankyou",
        "canonical": "App\\Http\\Controllers\\HomeController@home",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\HomeController@home. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4a618e52",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_088",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "canonical": "App\\Http\\Controllers\\LandingController@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\LandingController@__invoke. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_93136a89",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_089",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addReaction",
        "canonical": "App\\Http\\Controllers\\RecognitionController@addComment",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\RecognitionController@addComment. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a91e595f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_090",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@checkout",
        "canonical": "App\\Http\\Controllers\\RfqController@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\RfqController@form. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_830fb365",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_090",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@confirm",
        "canonical": "App\\Http\\Controllers\\RfqController@form",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\RfqController@form. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c06837c6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_091",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "canonical": "App\\Http\\Controllers\\SubscriptionController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\SubscriptionController@index. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9d53e428",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_091",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@portal",
        "canonical": "App\\Http\\Controllers\\SubscriptionController@index",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Controllers\\SubscriptionController@index. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9ae8159a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@authorize",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_290e7e93",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Http\\Requests\\StoreTaskForDocumentRequest@authorize",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7662cf4b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@authorize",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ef452fd1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@authorize",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e0289423",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@authorize",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c223e2fe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Models\\HireRequest@isOpen",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4c57427a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Models\\HireRequest@isReplacement",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_59bf0255",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@isEmpty",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e0dcbe45",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@isEmpty",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7a66f52f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isIncluded",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fb15e798",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isClientError",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ae9bf104",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isServerError",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_578ded6c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Services\\ZeptoMailService@isEnabled",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ab55b44a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_092",
        "fqmn": "App\\Support\\ResettingUserQuery@exists",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8e140269",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_093",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@withValidator",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@withValidator",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@withValidator. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_169306d3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_093",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@withValidator",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@withValidator",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@withValidator. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ee3184b9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_093",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@withValidator",
        "canonical": "App\\Http\\Requests\\AssignTaskRequest@withValidator",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\AssignTaskRequest@withValidator. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_26d9bf33",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Http\\Requests\\StoreGroupRequest@authorize",
        "canonical": "App\\Http\\Requests\\Auth\\LoginRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\LoginRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b11be511",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Http\\Requests\\UpdateGroupRequest@authorize",
        "canonical": "App\\Http\\Requests\\Auth\\LoginRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\LoginRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9ac8ad28",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_094",
        "fqmn": "App\\Models\\Company@canAddSeat",
        "canonical": "App\\Http\\Requests\\Auth\\LoginRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Auth\\LoginRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_22537b32",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Services\\ForecastService@getForecastWidgets",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0ee29ccc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\AssessmentWindow@buckets",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_66a18ab1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@includedMetrics",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_abc26029",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Services\\MappingService@getCanonicalKeys",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1d65809a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@helpList",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_085f017c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@checkHealth",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6266df30",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@failures",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e60e527d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Support\\EmployerNav@items",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0d9c9a7b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_095",
        "fqmn": "App\\Support\\Features\\Features@bundleAliasSlugs",
        "canonical": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_78c6757e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_096",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedTo",
        "canonical": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fad74f78",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_097",
        "fqmn": "App\\Models\\Product@computePointsCost",
        "canonical": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bf8b6a86",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_097",
        "fqmn": "App\\Services\\TaxService@getVatRateBps",
        "canonical": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_91cbdab0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_097",
        "fqmn": "App\\Support\\ResettingUserQuery@count",
        "canonical": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6f460f9c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_098",
        "fqmn": "App\\Support\\HireReadinessAccess@canAccess",
        "canonical": "App\\Http\\Requests\\StoreMessageRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\StoreMessageRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dd8f73f2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_098",
        "fqmn": "App\\Support\\RefreshmentsAccess@canAccess",
        "canonical": "App\\Http\\Requests\\StoreMessageRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\StoreMessageRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_61e37583",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_098",
        "fqmn": "App\\Support\\RefreshmentsAccess@canNavigate",
        "canonical": "App\\Http\\Requests\\StoreMessageRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\StoreMessageRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f2c82a73",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_098",
        "fqmn": "App\\Support\\StoreAccess@canAccess",
        "canonical": "App\\Http\\Requests\\StoreMessageRequest@authorize",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Requests\\StoreMessageRequest@authorize. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_de669b31",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_099",
        "fqmn": "App\\Http\\Resources\\MessageAttachmentResource@toArray",
        "canonical": "App\\Http\\Resources\\GroupResource@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\GroupResource@toArray. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d55577aa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_099",
        "fqmn": "App\\Http\\Resources\\UserResource@toArray",
        "canonical": "App\\Http\\Resources\\GroupResource@toArray",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Http\\Resources\\GroupResource@toArray. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_69b63793",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_100",
        "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@__construct",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_700e93f0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\BatchSettleSupplierPayouts@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_44e71be5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\Billing\\RecordGatewayFeeJob@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_feb43f34",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\CreateZohoBillForOrderSupplier@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_68a8ec5e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\CreateZohoInvoiceForOrder@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1664f65d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e77b84e8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1ad7017b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9b00f9db",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\PrefetchPlanInvoice@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a759fcf8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\PrefetchWalletReceipt@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_54843d67",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\ProcessSupplierInvoiceOcr@tags",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fa24737c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\ProcessZohoOutboxEntry@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_68d578c4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\RecordOtoTopUpInZoho@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0de529a7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\RecordSalesCommissionInZoho@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_95b647cb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\ReverseOrderInZoho@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5d511d2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\SendZohoAdvance@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e8e1acfe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\SettleSupplierInvoicePayment@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_929add56",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f14144f1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\SyncProductToZoho@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_925ebdfb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_101",
        "fqmn": "App\\Jobs\\UploadZohoBillAttachment@middleware",
        "canonical": "App\\Jobs\\AccrueCogsForOrderDelivery@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\AccrueCogsForOrderDelivery@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_460ff401",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_102",
        "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@__construct",
        "canonical": "App\\Jobs\\CreateZohoInvoiceForOrder@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\CreateZohoInvoiceForOrder@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7c7c26b6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_102",
        "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@__construct",
        "canonical": "App\\Jobs\\CreateZohoInvoiceForOrder@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\CreateZohoInvoiceForOrder@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_29e4661b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_102",
        "fqmn": "App\\Jobs\\ReconcilePaymentForOrder@__construct",
        "canonical": "App\\Jobs\\CreateZohoInvoiceForOrder@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\CreateZohoInvoiceForOrder@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_11358840",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_103",
        "fqmn": "App\\Jobs\\SendOrderCompletionNotification@failed",
        "canonical": "App\\Jobs\\GenerateDigestBatch@failed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\GenerateDigestBatch@failed. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_02505476",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_104",
        "fqmn": "App\\Jobs\\WarmKpiOkrCache@handle",
        "canonical": "App\\Jobs\\GenerateHelpBotReply@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\GenerateHelpBotReply@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e69fb9ca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_105",
        "fqmn": "App\\Jobs\\MonitorStuckOrders@failed",
        "canonical": "App\\Jobs\\MonitorStuckCheckouts@failed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\MonitorStuckCheckouts@failed. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_87969de3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_106",
        "fqmn": "App\\Jobs\\Occasions\\OccasionEmailSendJob@middleware",
        "canonical": "App\\Jobs\\Occasions\\ManagerHeadsUpJob@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Occasions\\ManagerHeadsUpJob@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9f1b3bf7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_106",
        "fqmn": "App\\Jobs\\Occasions\\OccasionEventDispatchJob@middleware",
        "canonical": "App\\Jobs\\Occasions\\ManagerHeadsUpJob@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Occasions\\ManagerHeadsUpJob@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_be39dc80",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_106",
        "fqmn": "App\\Jobs\\RetryTapWebhookJob@backoff",
        "canonical": "App\\Jobs\\Occasions\\ManagerHeadsUpJob@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\Occasions\\ManagerHeadsUpJob@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_252a5aaf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_107",
        "fqmn": "App\\Jobs\\SendApprovedDigests@failed",
        "canonical": "App\\Jobs\\ProcessSupplierInvoiceOcr@failed",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\ProcessSupplierInvoiceOcr@failed. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4dd04068",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_108",
        "fqmn": "App\\Jobs\\ProcessTapPlanUpgrade@middleware",
        "canonical": "App\\Jobs\\ProcessTapPlanPurchase@middleware",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\ProcessTapPlanPurchase@middleware. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_55d4f749",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_109",
        "fqmn": "App\\Jobs\\RecordSalesCommissionInZoho@handle",
        "canonical": "App\\Jobs\\RecordOtoTopUpInZoho@handle",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Jobs\\RecordOtoTopUpInZoho@handle. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4872db10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Models\\HireRequest@jdLines",
        "canonical": "App\\Models\\HireRequest@approvals",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@approvals. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d2fd5cbc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_110",
        "fqmn": "App\\Models\\HireRequest@outcomeCheckpoints",
        "canonical": "App\\Models\\HireRequest@approvals",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@approvals. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8547536b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Models\\HireRequest@rejectedBy",
        "canonical": "App\\Models\\HireRequest@company",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@company. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_666e542f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Models\\HireRequest@replacementUser",
        "canonical": "App\\Models\\HireRequest@company",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@company. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6789ed1a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Models\\HireRequest@requester",
        "canonical": "App\\Models\\HireRequest@company",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@company. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2d517293",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Models\\HireRequest@targetDepartment",
        "canonical": "App\\Models\\HireRequest@company",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@company. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_22557d58",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Models\\HireRequest@targetTeam",
        "canonical": "App\\Models\\HireRequest@company",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@company. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0f2cf2fb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@company",
        "canonical": "App\\Models\\HireRequest@company",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@company. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_beca882a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@processedByUser",
        "canonical": "App\\Models\\HireRequest@company",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@company. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fae7bfa7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_111",
        "fqmn": "App\\Models\\Privacy\\DataSubjectRequest@user",
        "canonical": "App\\Models\\HireRequest@company",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@company. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_62c6df2b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_112",
        "fqmn": "App\\Models\\HireRequest@report",
        "canonical": "App\\Models\\HireRequest@jobPosting",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Models\\HireRequest@jobPosting. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_756aab2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\AccountingDriftPolicy@deleteAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3ef35cc8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@create",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5a37c967",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@deleteAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_acc0eaa2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@create",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2c33e0e9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@deleteAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2b14cbec",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@create",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_512bae83",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@deleteAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a8db78d0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@create",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_68bb4a2f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@deleteAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_270e4e96",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@create",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b8d5b195",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@deleteAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a50e8f38",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\ZohoSideEditPolicy@create",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d8529677",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_113",
        "fqmn": "App\\Policies\\ZohoSideEditPolicy@deleteAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8805ffe8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_114",
        "fqmn": "App\\Policies\\AccountingDriftPolicy@forceDelete",
        "canonical": "App\\Policies\\AccountingDriftPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7969dd0a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_114",
        "fqmn": "App\\Policies\\AccountingDriftPolicy@restore",
        "canonical": "App\\Policies\\AccountingDriftPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5b963656",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_115",
        "fqmn": "App\\Policies\\AccountingDriftPolicy@view",
        "canonical": "App\\Policies\\AccountingDriftPolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fc76e488",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@viewAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f797d71a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@viewAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7511dc5c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@viewAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_18ba138c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@viewAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_70775cfc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@viewAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7748231a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_116",
        "fqmn": "App\\Policies\\ZohoSideEditPolicy@viewAny",
        "canonical": "App\\Policies\\AccountingDriftPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AccountingDriftPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e3246e56",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_03c938a4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\DocumentActivityLogPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1656fd52",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\DocumentSharePolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_471e5340",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_91907a85",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2e452d10",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3161e26b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\JobPostingPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d9814644",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\JobReferralPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d6f2ecaa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\OrderPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_add540eb",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\PlanPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_211cf92a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\PlanVersionPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_77cd1771",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\PlanVersionPolicy@deleteAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_84f9aaaf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\PlanVersionPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f1ac9551",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\RecognitionPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c75574b6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3cc4967e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2f1b488d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_117",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@bulkAction. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a02b8eb5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@deleteAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_45beb4ac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\DeliveryPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_de69a1f4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\DisputePolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4fa1f2ff",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\DocumentPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bac29074",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\DocumentPolicy@viewAny",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_66feeb98",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\DocumentSharePolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_993de98e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d1f1b314",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\OrderPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1fd70ccd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\PlanPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_afb24b73",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9fa5cb1d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\RecognitionPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a9cd94dc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7c837a66",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9b66a4a9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\UserPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1acdd089",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_118",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@create",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_37ed4aa5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_119",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@forceDelete",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a98d93b7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_119",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@restore",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a311dfba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_120",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@view",
        "canonical": "App\\Policies\\AdminSupplierInvoicePolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\AdminSupplierInvoicePolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a925c5c8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_121",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@restore",
        "canonical": "App\\Policies\\CompanySubscriptionPolicy@forceDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\CompanySubscriptionPolicy@forceDelete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_14c4f395",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_122",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@revoke",
        "canonical": "App\\Policies\\CompanySubscriptionPolicy@reactivate",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\CompanySubscriptionPolicy@reactivate. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f217f6ee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_123",
        "fqmn": "App\\Policies\\DeliveryPolicy@forceDelete",
        "canonical": "App\\Policies\\DeliveryPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DeliveryPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e23eeb48",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_123",
        "fqmn": "App\\Policies\\DeliveryPolicy@restore",
        "canonical": "App\\Policies\\DeliveryPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DeliveryPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_97dc575b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_123",
        "fqmn": "App\\Policies\\DeliveryPolicy@update",
        "canonical": "App\\Policies\\DeliveryPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DeliveryPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_52e88894",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_124",
        "fqmn": "App\\Policies\\DisputePolicy@viewAny",
        "canonical": "App\\Policies\\DeliveryPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DeliveryPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_deec4b1e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_124",
        "fqmn": "App\\Policies\\DisputePolicy@viewWidget",
        "canonical": "App\\Policies\\DeliveryPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DeliveryPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_eaf4b695",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_124",
        "fqmn": "App\\Policies\\ProductPolicy@deleteAny",
        "canonical": "App\\Policies\\DeliveryPolicy@viewAny",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DeliveryPolicy@viewAny. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_47949a3d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_125",
        "fqmn": "App\\Policies\\DisputePolicy@view",
        "canonical": "App\\Policies\\DisputePolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DisputePolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7a1c8445",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_126",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@update",
        "canonical": "App\\Policies\\DocumentFieldPolicy@accept",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentFieldPolicy@accept. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8edd105e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "App\\Policies\\DocumentPolicy@delete",
        "canonical": "App\\Policies\\DocumentPolicy@comment",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentPolicy@comment. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_45d10246",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "App\\Policies\\DocumentPolicy@manageShares",
        "canonical": "App\\Policies\\DocumentPolicy@comment",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentPolicy@comment. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ae4d93b8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_127",
        "fqmn": "App\\Policies\\DocumentPolicy@update",
        "canonical": "App\\Policies\\DocumentPolicy@comment",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentPolicy@comment. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_89311e9c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_128",
        "fqmn": "App\\Policies\\DocumentPolicy@restore",
        "canonical": "App\\Policies\\DocumentPolicy@forceDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentPolicy@forceDelete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7e3da635",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_129",
        "fqmn": "App\\Policies\\DocumentSharePolicy@update",
        "canonical": "App\\Policies\\DocumentSharePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentSharePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_76e75ea6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\DocumentTypePolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f27c17c3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@create",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_959da30a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@deleteAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1f07b828",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d24800a5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@create",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4844c0ea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4a36e4a5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\KieTemplatePolicy@create",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1555acea",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\KieTemplatePolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_74c407ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@create",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4c100ba3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_62653eb8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\PayoutPolicy@create",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ba1304fd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\PayoutPolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_06dba273",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\ProductPolicy@create",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_233f6518",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\ProductPolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_56710287",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\SupplierInvoicePolicy@create",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_06e0915c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\SupplierInvoicePolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bef1d44c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\UserPolicy@viewAny",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_25ee0060",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@create",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_55f2b97a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canCreate",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3e06da29",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isDepartmentManager",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9d26e36c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_130",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isEmployeeRole",
        "canonical": "App\\Policies\\DocumentTypePolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c729c920",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_131",
        "fqmn": "App\\Policies\\DocumentTypePolicy@forceDelete",
        "canonical": "App\\Policies\\DocumentTypePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a2f666d2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_131",
        "fqmn": "App\\Policies\\DocumentTypePolicy@restore",
        "canonical": "App\\Policies\\DocumentTypePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7be497d1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_131",
        "fqmn": "App\\Policies\\DocumentTypePolicy@update",
        "canonical": "App\\Policies\\DocumentTypePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_aa223d21",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_131",
        "fqmn": "App\\Policies\\DocumentTypePolicy@view",
        "canonical": "App\\Policies\\DocumentTypePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentTypePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e563c8b5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_132",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@review",
        "canonical": "App\\Policies\\DocumentVersionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentVersionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d8493fa8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_132",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@update",
        "canonical": "App\\Policies\\DocumentVersionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DocumentVersionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_40162576",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_133",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@forceDelete",
        "canonical": "App\\Policies\\DunningPolicyPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DunningPolicyPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_10925b60",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_133",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@restore",
        "canonical": "App\\Policies\\DunningPolicyPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DunningPolicyPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ddce07d3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_133",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@update",
        "canonical": "App\\Policies\\DunningPolicyPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DunningPolicyPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d19425f3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_133",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@view",
        "canonical": "App\\Policies\\DunningPolicyPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\DunningPolicyPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_12377c41",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_134",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@update",
        "canonical": "App\\Policies\\EmailTemplatePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\EmailTemplatePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3b167b71",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_134",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@view",
        "canonical": "App\\Policies\\EmailTemplatePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\EmailTemplatePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_719bd38e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_135",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@forceDelete",
        "canonical": "App\\Policies\\FieldDefinitionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FieldDefinitionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_676774a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_135",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@restore",
        "canonical": "App\\Policies\\FieldDefinitionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FieldDefinitionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_79184f3b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_135",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@update",
        "canonical": "App\\Policies\\FieldDefinitionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FieldDefinitionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_58462d8b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_135",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@view",
        "canonical": "App\\Policies\\FieldDefinitionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\FieldDefinitionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5ef77885",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_136",
        "fqmn": "App\\Policies\\JobReferralPolicy@before",
        "canonical": "App\\Policies\\JobPostingPolicy@before",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\JobPostingPolicy@before. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ad63c282",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_136",
        "fqmn": "App\\Policies\\UserPolicy@before",
        "canonical": "App\\Policies\\JobPostingPolicy@before",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\JobPostingPolicy@before. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_547e9931",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_137",
        "fqmn": "App\\Policies\\JobPostingPolicy@update",
        "canonical": "App\\Policies\\JobPostingPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\JobPostingPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f458361f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_138",
        "fqmn": "App\\Policies\\KieTemplatePolicy@forceDelete",
        "canonical": "App\\Policies\\KieTemplatePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\KieTemplatePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e68cf361",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_138",
        "fqmn": "App\\Policies\\KieTemplatePolicy@restore",
        "canonical": "App\\Policies\\KieTemplatePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\KieTemplatePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_63fbcf84",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_138",
        "fqmn": "App\\Policies\\KieTemplatePolicy@update",
        "canonical": "App\\Policies\\KieTemplatePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\KieTemplatePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3e99d0e8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_138",
        "fqmn": "App\\Policies\\KieTemplatePolicy@view",
        "canonical": "App\\Policies\\KieTemplatePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\KieTemplatePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e1c4f058",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_139",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@forceDelete",
        "canonical": "App\\Policies\\NotificationFailurePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\NotificationFailurePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f56e313a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_139",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@restore",
        "canonical": "App\\Policies\\NotificationFailurePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\NotificationFailurePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b0891879",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_139",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@update",
        "canonical": "App\\Policies\\NotificationFailurePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\NotificationFailurePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_007653cf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_140",
        "fqmn": "App\\Policies\\OrderPolicy@forceDelete",
        "canonical": "App\\Policies\\OrderPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\OrderPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_060add11",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_140",
        "fqmn": "App\\Policies\\OrderPolicy@restore",
        "canonical": "App\\Policies\\OrderPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\OrderPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4d62c0b4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_140",
        "fqmn": "App\\Policies\\OrderPolicy@update",
        "canonical": "App\\Policies\\OrderPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\OrderPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_58129416",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_141",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@forceDelete",
        "canonical": "App\\Policies\\OrderVendorPosPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\OrderVendorPosPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_70e9ee40",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_141",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@restore",
        "canonical": "App\\Policies\\OrderVendorPosPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\OrderVendorPosPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_43651933",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_141",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@update",
        "canonical": "App\\Policies\\OrderVendorPosPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\OrderVendorPosPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_25c8e053",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_141",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@view",
        "canonical": "App\\Policies\\OrderVendorPosPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\OrderVendorPosPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bf140735",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_142",
        "fqmn": "App\\Policies\\PayoutPolicy@forceDelete",
        "canonical": "App\\Policies\\PayoutPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PayoutPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ef96cf47",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_142",
        "fqmn": "App\\Policies\\PayoutPolicy@restore",
        "canonical": "App\\Policies\\PayoutPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PayoutPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9539544e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_142",
        "fqmn": "App\\Policies\\PayoutPolicy@update",
        "canonical": "App\\Policies\\PayoutPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PayoutPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ce41c86a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_142",
        "fqmn": "App\\Policies\\PayoutPolicy@view",
        "canonical": "App\\Policies\\PayoutPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PayoutPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8d15450d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_143",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@forceDelete",
        "canonical": "App\\Policies\\PendingInvariantPatchPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PendingInvariantPatchPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e42af02f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_143",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@restore",
        "canonical": "App\\Policies\\PendingInvariantPatchPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PendingInvariantPatchPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4a38438f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_144",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@view",
        "canonical": "App\\Policies\\PendingInvariantPatchPolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PendingInvariantPatchPolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_85dfffc9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_145",
        "fqmn": "App\\Policies\\PlanPolicy@forceDelete",
        "canonical": "App\\Policies\\PlanPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PlanPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_021cd623",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_145",
        "fqmn": "App\\Policies\\PlanPolicy@restore",
        "canonical": "App\\Policies\\PlanPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PlanPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9c6e1631",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_146",
        "fqmn": "App\\Policies\\PlanPolicy@view",
        "canonical": "App\\Policies\\PlanPolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PlanPolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_82535982",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_147",
        "fqmn": "App\\Policies\\PlanVersionPolicy@update",
        "canonical": "App\\Policies\\PlanVersionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PlanVersionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5a473306",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_147",
        "fqmn": "App\\Policies\\PlanVersionPolicy@view",
        "canonical": "App\\Policies\\PlanVersionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PlanVersionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c1b3d5ac",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_148",
        "fqmn": "App\\Policies\\PlanVersionPolicy@restore",
        "canonical": "App\\Policies\\PlanVersionPolicy@forceDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PlanVersionPolicy@forceDelete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_57324993",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_149",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@forceDelete",
        "canonical": "App\\Policies\\PointsTransactionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PointsTransactionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dfe1989d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_149",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@restore",
        "canonical": "App\\Policies\\PointsTransactionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PointsTransactionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d0604a08",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_149",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@update",
        "canonical": "App\\Policies\\PointsTransactionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\PointsTransactionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d2c0bd48",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_150",
        "fqmn": "App\\Policies\\ProductPolicy@update",
        "canonical": "App\\Policies\\ProductPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ProductPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8418e1f4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_150",
        "fqmn": "App\\Policies\\ProductPolicy@view",
        "canonical": "App\\Policies\\ProductPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ProductPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fc675828",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_151",
        "fqmn": "App\\Policies\\ProductPolicy@restore",
        "canonical": "App\\Policies\\ProductPolicy@forceDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ProductPolicy@forceDelete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_926c0ab3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_152",
        "fqmn": "App\\Policies\\RecognitionPolicy@restore",
        "canonical": "App\\Policies\\RecognitionPolicy@forceDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RecognitionPolicy@forceDelete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_81070942",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_152",
        "fqmn": "App\\Policies\\RecognitionPolicy@update",
        "canonical": "App\\Policies\\RecognitionPolicy@forceDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RecognitionPolicy@forceDelete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_44049cfc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_153",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@deleteAny",
        "canonical": "App\\Policies\\RefreshmentPresetPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RefreshmentPresetPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e0711142",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_153",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@viewAny",
        "canonical": "App\\Policies\\RefreshmentPresetPolicy@create",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RefreshmentPresetPolicy@create. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cb0aff41",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_154",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@update",
        "canonical": "App\\Policies\\RefreshmentPresetPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RefreshmentPresetPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4fff8671",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_154",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@view",
        "canonical": "App\\Policies\\RefreshmentPresetPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RefreshmentPresetPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_35ebbe9f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_155",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@restore",
        "canonical": "App\\Policies\\RefreshmentPresetPolicy@forceDelete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\RefreshmentPresetPolicy@forceDelete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d0a06215",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_156",
        "fqmn": "App\\Policies\\ReminderPolicy@update",
        "canonical": "App\\Policies\\ReminderPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ReminderPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d6f317c0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_157",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@forceDelete",
        "canonical": "App\\Policies\\SubscriptionAccountingDriftPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SubscriptionAccountingDriftPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7c1ebe32",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_157",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@restore",
        "canonical": "App\\Policies\\SubscriptionAccountingDriftPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SubscriptionAccountingDriftPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_970972a0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_158",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@view",
        "canonical": "App\\Policies\\SubscriptionAccountingDriftPolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SubscriptionAccountingDriftPolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ac8ee5e3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_159",
        "fqmn": "App\\Policies\\SupplierInvoicePolicy@view",
        "canonical": "App\\Policies\\SupplierInvoicePolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SupplierInvoicePolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_531f3655",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_160",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@forceDelete",
        "canonical": "App\\Policies\\SupplierOrderPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SupplierOrderPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ed280127",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_160",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@restore",
        "canonical": "App\\Policies\\SupplierOrderPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SupplierOrderPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_32767fae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_160",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@update",
        "canonical": "App\\Policies\\SupplierOrderPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SupplierOrderPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e72f6862",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@forceDelete",
        "canonical": "App\\Policies\\SupplierPayoutPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SupplierPayoutPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9c4c1094",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@restore",
        "canonical": "App\\Policies\\SupplierPayoutPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SupplierPayoutPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c4400b6f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_161",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@update",
        "canonical": "App\\Policies\\SupplierPayoutPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\SupplierPayoutPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_48f44060",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_162",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@forceDelete",
        "canonical": "App\\Policies\\TapSettlementJournalEntryPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TapSettlementJournalEntryPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_183de012",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_162",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@restore",
        "canonical": "App\\Policies\\TapSettlementJournalEntryPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TapSettlementJournalEntryPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9fda6a11",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_162",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@update",
        "canonical": "App\\Policies\\TapSettlementJournalEntryPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TapSettlementJournalEntryPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7b3aa95a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_163",
        "fqmn": "App\\Policies\\TaskPolicy@delete",
        "canonical": "App\\Policies\\TaskPolicy@approve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TaskPolicy@approve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f21d7144",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_163",
        "fqmn": "App\\Policies\\TaskPolicy@update",
        "canonical": "App\\Policies\\TaskPolicy@approve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TaskPolicy@approve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d01967a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_163",
        "fqmn": "App\\Policies\\TaskPolicy@view",
        "canonical": "App\\Policies\\TaskPolicy@approve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\TaskPolicy@approve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e4d36158",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_164",
        "fqmn": "App\\Policies\\UserPolicy@forceDelete",
        "canonical": "App\\Policies\\UserPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\UserPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a407923a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_164",
        "fqmn": "App\\Policies\\UserPolicy@restore",
        "canonical": "App\\Policies\\UserPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\UserPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_50016e19",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_164",
        "fqmn": "App\\Policies\\UserPolicy@view",
        "canonical": "App\\Policies\\UserPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\UserPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a192a80a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_165",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@forceDelete",
        "canonical": "App\\Policies\\WalletFreezeOverridePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\WalletFreezeOverridePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1f93dc4c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_165",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@restore",
        "canonical": "App\\Policies\\WalletFreezeOverridePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\WalletFreezeOverridePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f6112127",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_165",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@update",
        "canonical": "App\\Policies\\WalletFreezeOverridePolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\WalletFreezeOverridePolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_256755d8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_166",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@forceDelete",
        "canonical": "App\\Policies\\WalletTransactionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\WalletTransactionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0ccd3eba",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_166",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@restore",
        "canonical": "App\\Policies\\WalletTransactionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\WalletTransactionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d0ac44f9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_166",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@update",
        "canonical": "App\\Policies\\WalletTransactionPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\WalletTransactionPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d065ac79",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_167",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@forceDelete",
        "canonical": "App\\Policies\\ZohoDriftEventPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ZohoDriftEventPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5a3e0753",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_167",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@restore",
        "canonical": "App\\Policies\\ZohoDriftEventPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ZohoDriftEventPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_60ab7ae1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_168",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@view",
        "canonical": "App\\Policies\\ZohoDriftEventPolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ZohoDriftEventPolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_becfa4c1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_169",
        "fqmn": "App\\Policies\\ZohoSideEditPolicy@forceDelete",
        "canonical": "App\\Policies\\ZohoSideEditPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ZohoSideEditPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_74e8ee6b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_169",
        "fqmn": "App\\Policies\\ZohoSideEditPolicy@restore",
        "canonical": "App\\Policies\\ZohoSideEditPolicy@delete",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ZohoSideEditPolicy@delete. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_42c5300c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_170",
        "fqmn": "App\\Policies\\ZohoSideEditPolicy@view",
        "canonical": "App\\Policies\\ZohoSideEditPolicy@update",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Policies\\ZohoSideEditPolicy@update. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_20ff207c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_171",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getRecognitionEquityIndex",
        "canonical": "App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_34e1e532",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_171",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getSiloScoreByDepartment",
        "canonical": "App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e7c6a11b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@countExclamationRuns",
        "canonical": "App\\Services\\Awareness\\MessageIntensityScorer@charCount",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Awareness\\MessageIntensityScorer@charCount. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e9edd364",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_172",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@countRepeatedCharRuns",
        "canonical": "App\\Services\\Awareness\\MessageIntensityScorer@charCount",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Awareness\\MessageIntensityScorer@charCount. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1ab407fa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_173",
        "fqmn": "App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyIntensifierPhrase",
        "canonical": "App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyGenericPhrase",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Awareness\\MessageIntensityScorer@matchesAnyGenericPhrase. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_17d9aca1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_174",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getImpactScores",
        "canonical": "App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_03c37d2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_174",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getRisingValues",
        "canonical": "App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bd27a144",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_175",
        "fqmn": "App\\Services\\BadgeOkrService@getTaskOrientedTargets",
        "canonical": "App\\Services\\BadgeOkrService@getResultOrientedTargets",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BadgeOkrService@getResultOrientedTargets. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7897e005",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_175",
        "fqmn": "App\\Services\\BadgeOkrService@getTeamProgress",
        "canonical": "App\\Services\\BadgeOkrService@getResultOrientedTargets",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BadgeOkrService@getResultOrientedTargets. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_af00b807",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_176",
        "fqmn": "App\\Services\\LeaderboardService@createDefaultLeaderboards",
        "canonical": "App\\Services\\BadgeService@createDefaultBadges",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BadgeService@createDefaultBadges. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ae8426f3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_177",
        "fqmn": "App\\Services\\Predictive\\TeamStabilityIndex@compute",
        "canonical": "App\\Services\\BehaviorDriversService@compute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\BehaviorDriversService@compute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0f6adfee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_178",
        "fqmn": "App\\Services\\CultureMetricsService@getTeamCollaboration",
        "canonical": "App\\Services\\CompanyInsightsService@getCompanyHealth",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\CompanyInsightsService@getCompanyHealth. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_267098a1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_178",
        "fqmn": "App\\Services\\EmployeeWellnessService@getWellnessIndex",
        "canonical": "App\\Services\\CompanyInsightsService@getCompanyHealth",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\CompanyInsightsService@getCompanyHealth. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_edc76bca",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_179",
        "fqmn": "App\\Services\\EmployeeWellnessService@getSatisfactionMetrics",
        "canonical": "App\\Services\\CompanyInsightsService@getPerformanceTrends",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\CompanyInsightsService@getPerformanceTrends. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_62f488ee",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_179",
        "fqmn": "App\\Services\\TeamProductivityService@getTeamProductivityIndex",
        "canonical": "App\\Services\\CompanyInsightsService@getPerformanceTrends",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\CompanyInsightsService@getPerformanceTrends. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_69d79e1f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_180",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder@build",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5db1fd4d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_180",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@build",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c865c72b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_180",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@build",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e0f3c774",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_181",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@all",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@all",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@all. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_342a96e9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_181",
        "fqmn": "App\\Services\\WidgetMatrixService@groupByUiContainer",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@all",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@all. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_190cab18",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_182",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@renderer",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@builder",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@builder. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1069ce42",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_183",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@clearCache",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0a49f56f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_183",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@clearSnapshotCache",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d4996ba9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_183",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@clearResolveCache",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9ff0ffc0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_183",
        "fqmn": "App\\Support\\CompanyAccess@clearAllCachedContexts",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b6c9f8ad",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_183",
        "fqmn": "App\\Support\\HtmlSanitizer@resetForTesting",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\DrilldownRegistry@clearCache. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f2d5b9aa",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_184",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@hasShape",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_921546fe",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_184",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder@hasShape",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dae88858",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_184",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@hasShape",
        "canonical": "App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4a237afd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_185",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@toPercentage",
        "canonical": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_458fa705",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_186",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@median",
        "canonical": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c00ed320",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_187",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getParticipantLeaderboard",
        "canonical": "App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9713bfef",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_187",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getPointsGainersLeaderboard",
        "canonical": "App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_739d8690",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_187",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getReceiverLeaderboard",
        "canonical": "App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_21a621ae",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_188",
        "fqmn": "App\\Services\\Predictive\\CulturalMomentumService@compute",
        "canonical": "App\\Services\\CulturalMomentumService@compute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\CulturalMomentumService@compute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ef67c328",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_188",
        "fqmn": "App\\Services\\PromptGeneratorService@prompts",
        "canonical": "App\\Services\\CulturalMomentumService@compute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\CulturalMomentumService@compute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_96ff324c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_189",
        "fqmn": "App\\Services\\RecognitionPolicyService@forCompany",
        "canonical": "App\\Services\\Dashboard\\ValuesPieComposer@compose",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Dashboard\\ValuesPieComposer@compose. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3a5cd2b7",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_190",
        "fqmn": "App\\Services\\FeatureGateService@__construct",
        "canonical": "App\\Services\\Email\\CompanyMailer@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Email\\CompanyMailer@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_23638593",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_191",
        "fqmn": "App\\Services\\SubscriptionResolver@hasActiveSubscription",
        "canonical": "App\\Services\\Entitlements@hasActiveSubscription",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Entitlements@hasActiveSubscription. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5724f199",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_192",
        "fqmn": "App\\Services\\Summaries\\OkrSummaryBuilder@build",
        "canonical": "App\\Services\\ExecutiveSummaryService@build",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ExecutiveSummaryService@build. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fac61023",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_193",
        "fqmn": "App\\Services\\OcrClient@__construct",
        "canonical": "App\\Services\\GPTService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\GPTService@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5871341f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_193",
        "fqmn": "App\\Services\\OtoClient@__construct",
        "canonical": "App\\Services\\GPTService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\GPTService@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_77b9a1a2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_193",
        "fqmn": "App\\Services\\ZeptoMailService@__construct",
        "canonical": "App\\Services\\GPTService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\GPTService@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ffd3116e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_194",
        "fqmn": "App\\Services\\GPTService@chatPlain",
        "canonical": "App\\Services\\GPTService@chatJson",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\GPTService@chatJson. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bb2f3557",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_195",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@compute",
        "canonical": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e213fbf5",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_196",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@compute",
        "canonical": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c029ce55",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_197",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@compute",
        "canonical": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_89778002",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_197",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@compute",
        "canonical": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a63c0010",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_198",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@stddev",
        "canonical": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bb09a93c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_199",
        "fqmn": "App\\Services\\KnowledgeService@upsertNameKnowledge",
        "canonical": "App\\Services\\KnowledgeService@upsertDepartmentKnowledge",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\KnowledgeService@upsertDepartmentKnowledge. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_170a91b0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_200",
        "fqmn": "App\\Services\\KpiOkrService@getOkrPaceTracker",
        "canonical": "App\\Services\\KpiOkrService@getOkrMomentumForecast",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\KpiOkrService@getOkrMomentumForecast. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2720c66f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_200",
        "fqmn": "App\\Services\\KpiOkrService@getRecognitionValueGap",
        "canonical": "App\\Services\\KpiOkrService@getOkrMomentumForecast",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\KpiOkrService@getOkrMomentumForecast. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d9461ebf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_201",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerCoverageQuality",
        "canonical": "App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1af9a818",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_202",
        "fqmn": "App\\Services\\LinkedInCapi@leadSubmitted",
        "canonical": "App\\Services\\LinkedInCapi@demoBooked",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\LinkedInCapi@demoBooked. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_44cd1fc0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_202",
        "fqmn": "App\\Services\\LinkedInCapi@trialStarted",
        "canonical": "App\\Services\\LinkedInCapi@demoBooked",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\LinkedInCapi@demoBooked. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e044c454",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_203",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@glossary",
        "canonical": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Metrics\\MetricConflictDetector@detectConflicts. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c76b32c8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_203",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@nativeKeys",
        "canonical": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Metrics\\MetricConflictDetector@detectConflicts. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d61b63bd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_203",
        "fqmn": "App\\Support\\Features\\Features@allSlugs",
        "canonical": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Metrics\\MetricConflictDetector@detectConflicts. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e6407d00",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_203",
        "fqmn": "App\\Support\\Features\\Features@groups",
        "canonical": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Metrics\\MetricConflictDetector@detectConflicts. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4094562e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_204",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@disambiguator",
        "canonical": "App\\Services\\Metrics\\WidgetMetadataRegistry@definition",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Metrics\\WidgetMetadataRegistry@definition. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a65ff8e0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_204",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@displayName",
        "canonical": "App\\Services\\Metrics\\WidgetMetadataRegistry@definition",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Metrics\\WidgetMetadataRegistry@definition. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c9b8089b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_204",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@formula",
        "canonical": "App\\Services\\Metrics\\WidgetMetadataRegistry@definition",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Metrics\\WidgetMetadataRegistry@definition. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_83b37db2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_205",
        "fqmn": "App\\Services\\MoneyMovementService@transferToWallet",
        "canonical": "App\\Services\\MoneyMovementService@transferFromWallet",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\MoneyMovementService@transferFromWallet. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7074d0f4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_206",
        "fqmn": "App\\Services\\ZohoDataValidator@validateCompanyForZoho",
        "canonical": "App\\Services\\Occasions\\FeatureGate@getAvailableFeatures",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Occasions\\FeatureGate@getAvailableFeatures. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f1480792",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_207",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getRequiredPlanLevel",
        "canonical": "App\\Services\\Occasions\\FeatureGate@getFeatureDescription",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Occasions\\FeatureGate@getFeatureDescription. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9df06e3f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_208",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@resolve",
        "canonical": "App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_60b2b09a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_209",
        "fqmn": "App\\Services\\OkrAutoTargetService@preview",
        "canonical": "App\\Services\\OkrAutoTargetService@getOkrSettings",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OkrAutoTargetService@getOkrSettings. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8ad382d3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_210",
        "fqmn": "App\\Services\\PaymentProcessingCoordinator@__construct",
        "canonical": "App\\Services\\OrderCompletionService@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OrderCompletionService@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_cbf4d71f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_211",
        "fqmn": "App\\Services\\OrderReconciliationService@scanSubscriptions",
        "canonical": "App\\Services\\OrderReconciliationService@scan",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\OrderReconciliationService@scan. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_230ce637",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_212",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@latestApplication",
        "canonical": "App\\Services\\Promotion\\PromotionApplicationService@activeCooldown",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Promotion\\PromotionApplicationService@activeCooldown. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f88fe3a6",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_213",
        "fqmn": "App\\Services\\RaiseNotifier@sendDeclined",
        "canonical": "App\\Services\\RaiseNotifier@sendApproved",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\RaiseNotifier@sendApproved. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_50c92f9f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_214",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildScoreBreakdown",
        "canonical": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ac9a36d0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_215",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@draft",
        "canonical": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_dcd3ab88",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_216",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@hasAuthorityOver",
        "canonical": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8b70ad0e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_217",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userDepartmentId",
        "canonical": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_44d6d3af",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_218",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userTeamIds",
        "canonical": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_71c4de2d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_219",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isSecondSundayOfMonth",
        "canonical": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c7e0e229",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_220",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@spent",
        "canonical": "App\\Services\\StrategyAlignment\\PointsBalance@earned",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\PointsBalance@earned. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_46f7122c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_221",
        "fqmn": "App\\Services\\StrategyAlignment\\PointsBalance@onHold",
        "canonical": "App\\Services\\StrategyAlignment\\PointsBalance@forfeited",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\PointsBalance@forfeited. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e519c591",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_222",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftOkrs",
        "canonical": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_c84ab2be",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_222",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculumWithRetry",
        "canonical": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_479dfbc9",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_223",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@requiresIntegration",
        "canonical": "App\\Services\\Succession\\MetricCatalog@isNative",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Succession\\MetricCatalog@isNative. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4d86910b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_224",
        "fqmn": "App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_55c988b0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_8563c401",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_225",
        "fqmn": "App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_1a8f303a",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_226",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_39d6ea7e",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_226",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_77d5fc36",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_227",
        "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@__construct",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_71467d2c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_228",
        "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_fa872556",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_229",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@__construct",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e2358b76",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_229",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@__construct",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@__construct",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@__construct. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_19cb0057",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_230",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0d730d5b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_230",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_86f65860",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_230",
        "fqmn": "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3a4c8089",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_230",
        "fqmn": "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bcdd7d1f",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_231",
        "fqmn": "App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget@resolve",
        "canonical": "App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_353b9ee4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_232",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveDeduped",
        "canonical": "App\\Services\\Widgets\\BaseWidget@resolve",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\Widgets\\BaseWidget@resolve. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_92b36ce2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_233",
        "fqmn": "App\\Services\\XCapi@leadSubmitted",
        "canonical": "App\\Services\\XCapi@demoBooked",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\XCapi@demoBooked. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_168026a2",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_233",
        "fqmn": "App\\Services\\XCapi@trialStarted",
        "canonical": "App\\Services\\XCapi@demoBooked",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\XCapi@demoBooked. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_503e4395",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_234",
        "fqmn": "App\\Services\\ZohoBooksService@getUnpaidInvoices",
        "canonical": "App\\Services\\ZohoBooksService@getCustomerAdvances",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ZohoBooksService@getCustomerAdvances. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_f9c57746",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_235",
        "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@reset",
        "canonical": "App\\Services\\ZohoIntegrationMonitor@performHealthCheck",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Services\\ZohoIntegrationMonitor@performHealthCheck. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a7ac94d4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_236",
        "fqmn": "App\\Support\\CompanyAccess@isEmployer",
        "canonical": "App\\Support\\CompanyAccess@isEmployee",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\CompanyAccess@isEmployee. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_9b1085a8",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_236",
        "fqmn": "App\\Support\\CompanyAccess@isEmployerOrManager",
        "canonical": "App\\Support\\CompanyAccess@isEmployee",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\CompanyAccess@isEmployee. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_458498fc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_236",
        "fqmn": "App\\Support\\CompanyAccess@isManager",
        "canonical": "App\\Support\\CompanyAccess@isEmployee",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\CompanyAccess@isEmployee. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_924700b3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_236",
        "fqmn": "App\\Support\\CompanyAccess@isOfficeAssistant",
        "canonical": "App\\Support\\CompanyAccess@isEmployee",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\CompanyAccess@isEmployee. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_e3acb7dd",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_236",
        "fqmn": "App\\Support\\CompanyAccess@isTeamLeader",
        "canonical": "App\\Support\\CompanyAccess@isEmployee",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\CompanyAccess@isEmployee. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_475fcbb4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_237",
        "fqmn": "App\\Support\\FeatureRegistry@isPreviewable",
        "canonical": "App\\Support\\FeatureRegistry@exists",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\FeatureRegistry@exists. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_2838e178",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_238",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@flattenOverrides",
        "canonical": "App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_6d67def1",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Support\\Help@loadFewshots",
        "canonical": "App\\Support\\Help@loadCapabilities",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Help@loadCapabilities. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_008532fc",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_239",
        "fqmn": "App\\Support\\Help@loadWorkflows",
        "canonical": "App\\Support\\Help@loadCapabilities",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Help@loadCapabilities. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_ceb9e38b",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_240",
        "fqmn": "App\\Support\\HelpId@idFor",
        "canonical": "App\\Support\\HelpId@hrefFor",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\HelpId@hrefFor. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_d68c62ab",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_241",
        "fqmn": "App\\Support\\HelpId@manifest",
        "canonical": "App\\Support\\HelpId@keys",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\HelpId@keys. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_3aa0fc4d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_242",
        "fqmn": "App\\Support\\RefreshmentsAccess@ensure",
        "canonical": "App\\Support\\JobsAccess@ensure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\JobsAccess@ensure. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_4609b82c",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_242",
        "fqmn": "App\\Support\\StoreAccess@ensure",
        "canonical": "App\\Support\\JobsAccess@ensure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\JobsAccess@ensure. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_bec6f571",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_243",
        "fqmn": "App\\Support\\Logging\\LogFake@assertNotLogged",
        "canonical": "App\\Support\\Logging\\LogFake@assertLogged",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Logging\\LogFake@assertLogged. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_95f7eaa4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_244",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForConversions",
        "canonical": "App\\Support\\Media\\SupplierPathGenerator@getPath",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Media\\SupplierPathGenerator@getPath. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_0940cdd3",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_244",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForResponsiveImages",
        "canonical": "App\\Support\\Media\\SupplierPathGenerator@getPath",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Media\\SupplierPathGenerator@getPath. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5eb88665",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_245",
        "fqmn": "App\\Support\\NavBuilder@buildAdminItems",
        "canonical": "App\\Support\\NavBuilder@buildAdminGroups",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\NavBuilder@buildAdminGroups. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_162ccf4d",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_246",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@collectFormMeta",
        "canonical": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_5f8fe059",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_247",
        "fqmn": "App\\Support\\Roles@isSupplier",
        "canonical": "App\\Support\\Roles@isSuperAdmin",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Roles@isSuperAdmin. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_b45ab823",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_248",
        "fqmn": "App\\Support\\Storage\\PdfStorageGateway@read",
        "canonical": "App\\Support\\Storage\\PdfStorageGateway@fullPath",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\Storage\\PdfStorageGateway@fullPath. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_341a40d0",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_249",
        "fqmn": "App\\Support\\TeamScoping@scopeUsersQuery",
        "canonical": "App\\Support\\TeamScoping@scopeTasksQuery",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Support\\TeamScoping@scopeTasksQuery. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_70aaaa97",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_250",
        "fqmn": "route::routes/web.php::get::/privacy-policy::closure",
        "canonical": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/test-pdf.php::get::/test-arabic-pdf::closure. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_612de359",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_251",
        "fqmn": "route::routes/web.php::get::/auth/dev/setup::closure",
        "canonical": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web_dev.php::get::/puppeteer_login_dev::closure. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_33bca462",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_252",
        "fqmn": "route::routes/web.php::get::/::closure",
        "canonical": "route::routes/web_test_login.php::get::/magic-login::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web_test_login.php::get::/magic-login::closure. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7ce74bb4",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_252",
        "fqmn": "route::routes/web.php::get::/dashboard::closure",
        "canonical": "route::routes/web_test_login.php::get::/magic-login::closure",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates route::routes/web_test_login.php::get::/magic-login::closure. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_7ac9b591",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_253",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@__invoke",
        "canonical": "App\\Filament\\Employer\\Pages\\ControlRoom@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Filament\\Employer\\Pages\\ControlRoom@__invoke. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "d_a1e2bcaf",
        "kind": "DUPLICATION",
        "cluster_id": "cluster_253",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@__invoke",
        "canonical": "App\\Filament\\Employer\\Pages\\ControlRoom@__invoke",
        "action": "MERGE_INTO_CANONICAL_OR_ADD_COVERING_TEST_REFERENCING_CANONICAL",
        "signals": [
          "identical_signature_normalized",
          "identical_body_hash"
        ],
        "explanation": "Duplicates App\\Filament\\Employer\\Pages\\ControlRoom@__invoke. Customer choice: (a) merge calls into canonical surface, OR (b) keep this surface AND add a covering test referencing the canonical (acknowledging the duplication with justification).",
        "applied": false,
        "requires_human_decision": true
      }
    ],
    "coverage_gaps": [
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/AccrueGatewayFeesDaily.php::App\\Console\\Commands\\AccrueGatewayFeesDaily::handle",
        "fqmn": "App\\Console\\Commands\\AccrueGatewayFeesDaily@handle",
        "expected_test_path": "tests/Unit/AccrueGatewayFeesDailyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\AccrueGatewayFeesDaily;\n\nclass AccrueGatewayFeesDailyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\AccrueGatewayFeesDaily@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\AccrueGatewayFeesDaily@handle is PROOF_READY but no test file at tests/Unit/AccrueGatewayFeesDailyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/AddUserToCompany.php::App\\Console\\Commands\\AddUserToCompany::handle",
        "fqmn": "App\\Console\\Commands\\AddUserToCompany@handle",
        "expected_test_path": "tests/Unit/AddUserToCompanyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\AddUserToCompany;\n\nclass AddUserToCompanyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\AddUserToCompany@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\AddUserToCompany@handle is PROOF_READY but no test file at tests/Unit/AddUserToCompanyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/AnalyzeInvoiceConfidence.php::App\\Console\\Commands\\AnalyzeInvoiceConfidence::handle",
        "fqmn": "App\\Console\\Commands\\AnalyzeInvoiceConfidence@handle",
        "expected_test_path": "tests/Unit/AnalyzeInvoiceConfidenceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\AnalyzeInvoiceConfidence;\n\nclass AnalyzeInvoiceConfidenceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\AnalyzeInvoiceConfidence@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\AnalyzeInvoiceConfidence@handle is PROOF_READY but no test file at tests/Unit/AnalyzeInvoiceConfidenceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ApplyLatestImport.php::App\\Console\\Commands\\ApplyLatestImport::handle",
        "fqmn": "App\\Console\\Commands\\ApplyLatestImport@handle",
        "expected_test_path": "tests/Unit/ApplyLatestImportTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ApplyLatestImport;\n\nclass ApplyLatestImportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ApplyLatestImport@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ApplyLatestImport@handle is PROOF_READY but no test file at tests/Unit/ApplyLatestImportTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ApplyScheduledDowngrades.php::App\\Console\\Commands\\ApplyScheduledDowngrades::handle",
        "fqmn": "App\\Console\\Commands\\ApplyScheduledDowngrades@handle",
        "expected_test_path": "tests/Unit/ApplyScheduledDowngradesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ApplyScheduledDowngrades;\n\nclass ApplyScheduledDowngradesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ApplyScheduledDowngrades@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ApplyScheduledDowngrades@handle is PROOF_READY but no test file at tests/Unit/ApplyScheduledDowngradesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ArchiveOldEvents.php::App\\Console\\Commands\\ArchiveOldEvents::handle",
        "fqmn": "App\\Console\\Commands\\ArchiveOldEvents@handle",
        "expected_test_path": "tests/Unit/ArchiveOldEventsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ArchiveOldEvents;\n\nclass ArchiveOldEventsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ArchiveOldEvents@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ArchiveOldEvents@handle is PROOF_READY but no test file at tests/Unit/ArchiveOldEventsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/AuditTrailManagement.php::App\\Console\\Commands\\AuditTrailManagement::handle",
        "fqmn": "App\\Console\\Commands\\AuditTrailManagement@handle",
        "expected_test_path": "tests/Unit/AuditTrailManagementTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\AuditTrailManagement;\n\nclass AuditTrailManagementTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\AuditTrailManagement@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\AuditTrailManagement@handle is PROOF_READY but no test file at tests/Unit/AuditTrailManagementTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/BackfillAdvancePdfs.php::App\\Console\\Commands\\BackfillAdvancePdfs::handle",
        "fqmn": "App\\Console\\Commands\\BackfillAdvancePdfs@handle",
        "expected_test_path": "tests/Unit/BackfillAdvancePdfsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\BackfillAdvancePdfs;\n\nclass BackfillAdvancePdfsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BackfillAdvancePdfs@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\BackfillAdvancePdfs@handle is PROOF_READY but no test file at tests/Unit/BackfillAdvancePdfsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/BackfillKpiAnalytics.php::App\\Console\\Commands\\BackfillKpiAnalytics::handle",
        "fqmn": "App\\Console\\Commands\\BackfillKpiAnalytics@handle",
        "expected_test_path": "tests/Unit/BackfillKpiAnalyticsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\BackfillKpiAnalytics;\n\nclass BackfillKpiAnalyticsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BackfillKpiAnalytics@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\BackfillKpiAnalytics@handle is PROOF_READY but no test file at tests/Unit/BackfillKpiAnalyticsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/BackfillMessageConversationIds.php::App\\Console\\Commands\\BackfillMessageConversationIds::handle",
        "fqmn": "App\\Console\\Commands\\BackfillMessageConversationIds@handle",
        "expected_test_path": "tests/Unit/BackfillMessageConversationIdsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\BackfillMessageConversationIds;\n\nclass BackfillMessageConversationIdsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BackfillMessageConversationIds@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\BackfillMessageConversationIds@handle is PROOF_READY but no test file at tests/Unit/BackfillMessageConversationIdsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/BackfillMissingPlanInvoices.php::App\\Console\\Commands\\BackfillMissingPlanInvoices::handle",
        "fqmn": "App\\Console\\Commands\\BackfillMissingPlanInvoices@handle",
        "expected_test_path": "tests/Unit/BackfillMissingPlanInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\BackfillMissingPlanInvoices;\n\nclass BackfillMissingPlanInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BackfillMissingPlanInvoices@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\BackfillMissingPlanInvoices@handle is PROOF_READY but no test file at tests/Unit/BackfillMissingPlanInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/BackfillPlanInvoice.php::App\\Console\\Commands\\BackfillPlanInvoice::handle",
        "fqmn": "App\\Console\\Commands\\BackfillPlanInvoice@handle",
        "expected_test_path": "tests/Unit/BackfillPlanInvoiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\BackfillPlanInvoice;\n\nclass BackfillPlanInvoiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BackfillPlanInvoice@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\BackfillPlanInvoice@handle is PROOF_READY but no test file at tests/Unit/BackfillPlanInvoiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/BackfillRewardsSettingsCommand.php::App\\Console\\Commands\\BackfillRewardsSettingsCommand::handle",
        "fqmn": "App\\Console\\Commands\\BackfillRewardsSettingsCommand@handle",
        "expected_test_path": "tests/Unit/BackfillRewardsSettingsCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\BackfillRewardsSettingsCommand;\n\nclass BackfillRewardsSettingsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BackfillRewardsSettingsCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\BackfillRewardsSettingsCommand@handle is PROOF_READY but no test file at tests/Unit/BackfillRewardsSettingsCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/BackfillZohoBills.php::App\\Console\\Commands\\BackfillZohoBills::handle",
        "fqmn": "App\\Console\\Commands\\BackfillZohoBills@handle",
        "expected_test_path": "tests/Unit/BackfillZohoBillsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\BackfillZohoBills;\n\nclass BackfillZohoBillsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BackfillZohoBills@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\BackfillZohoBills@handle is PROOF_READY but no test file at tests/Unit/BackfillZohoBillsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/BuildHelpCapabilities.php::App\\Console\\Commands\\BuildHelpCapabilities::handle",
        "fqmn": "App\\Console\\Commands\\BuildHelpCapabilities@handle",
        "expected_test_path": "tests/Unit/BuildHelpCapabilitiesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\BuildHelpCapabilities;\n\nclass BuildHelpCapabilitiesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\BuildHelpCapabilities@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\BuildHelpCapabilities@handle is PROOF_READY but no test file at tests/Unit/BuildHelpCapabilitiesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/CheckDocument.php::App\\Console\\Commands\\CheckDocument::handle",
        "fqmn": "App\\Console\\Commands\\CheckDocument@handle",
        "expected_test_path": "tests/Unit/CheckDocumentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\CheckDocument;\n\nclass CheckDocumentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CheckDocument@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\CheckDocument@handle is PROOF_READY but no test file at tests/Unit/CheckDocumentTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/CheckGatewayFeeDrift.php::App\\Console\\Commands\\CheckGatewayFeeDrift::handle",
        "fqmn": "App\\Console\\Commands\\CheckGatewayFeeDrift@handle",
        "expected_test_path": "tests/Unit/CheckGatewayFeeDriftTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\CheckGatewayFeeDrift;\n\nclass CheckGatewayFeeDriftTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CheckGatewayFeeDrift@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\CheckGatewayFeeDrift@handle is PROOF_READY but no test file at tests/Unit/CheckGatewayFeeDriftTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/CheckHireOutcomesCommand.php::App\\Console\\Commands\\CheckHireOutcomesCommand::handle",
        "fqmn": "App\\Console\\Commands\\CheckHireOutcomesCommand@handle",
        "expected_test_path": "tests/Unit/CheckHireOutcomesCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\CheckHireOutcomesCommand;\n\nclass CheckHireOutcomesCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CheckHireOutcomesCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\CheckHireOutcomesCommand@handle is PROOF_READY but no test file at tests/Unit/CheckHireOutcomesCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/CheckRoute.php::App\\Console\\Commands\\CheckRoute::handle",
        "fqmn": "App\\Console\\Commands\\CheckRoute@handle",
        "expected_test_path": "tests/Unit/CheckRouteTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\CheckRoute;\n\nclass CheckRouteTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CheckRoute@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\CheckRoute@handle is PROOF_READY but no test file at tests/Unit/CheckRouteTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/CheckTables.php::App\\Console\\Commands\\CheckTables::handle",
        "fqmn": "App\\Console\\Commands\\CheckTables@handle",
        "expected_test_path": "tests/Unit/CheckTablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\CheckTables;\n\nclass CheckTablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CheckTables@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\CheckTables@handle is PROOF_READY but no test file at tests/Unit/CheckTablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/CheckZohoIntegrationHealth.php::App\\Console\\Commands\\CheckZohoIntegrationHealth::handle",
        "fqmn": "App\\Console\\Commands\\CheckZohoIntegrationHealth@handle",
        "expected_test_path": "tests/Unit/CheckZohoIntegrationHealthTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\CheckZohoIntegrationHealth;\n\nclass CheckZohoIntegrationHealthTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CheckZohoIntegrationHealth@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\CheckZohoIntegrationHealth@handle is PROOF_READY but no test file at tests/Unit/CheckZohoIntegrationHealthTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/CleanupExpiredStockReservations.php::App\\Console\\Commands\\CleanupExpiredStockReservations::handle",
        "fqmn": "App\\Console\\Commands\\CleanupExpiredStockReservations@handle",
        "expected_test_path": "tests/Unit/CleanupExpiredStockReservationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\CleanupExpiredStockReservations;\n\nclass CleanupExpiredStockReservationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CleanupExpiredStockReservations@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\CleanupExpiredStockReservations@handle is PROOF_READY but no test file at tests/Unit/CleanupExpiredStockReservationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeCliqueCandidatesSnapshots.php::App\\Console\\Commands\\ComputeCliqueCandidatesSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeCliqueCandidatesSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeCliqueCandidatesSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeCliqueCandidatesSnapshots;\n\nclass ComputeCliqueCandidatesSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeCliqueCandidatesSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeCliqueCandidatesSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeCliqueCandidatesSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeEngagementHealthSnapshots.php::App\\Console\\Commands\\ComputeEngagementHealthSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeEngagementHealthSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeEngagementHealthSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeEngagementHealthSnapshots;\n\nclass ComputeEngagementHealthSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeEngagementHealthSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeEngagementHealthSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeEngagementHealthSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeLeadershipSnapshots.php::App\\Console\\Commands\\ComputeLeadershipSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeLeadershipSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeLeadershipSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeLeadershipSnapshots;\n\nclass ComputeLeadershipSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeLeadershipSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeLeadershipSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeLeadershipSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeManagerialLeverageSnapshots.php::App\\Console\\Commands\\ComputeManagerialLeverageSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeManagerialLeverageSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeManagerialLeverageSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeManagerialLeverageSnapshots;\n\nclass ComputeManagerialLeverageSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeManagerialLeverageSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeManagerialLeverageSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeManagerialLeverageSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeNetworkSnapshots.php::App\\Console\\Commands\\ComputeNetworkSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeNetworkSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeNetworkSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeNetworkSnapshots;\n\nclass ComputeNetworkSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeNetworkSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeNetworkSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeNetworkSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeOkrAutoTargets.php::App\\Console\\Commands\\ComputeOkrAutoTargets::handle",
        "fqmn": "App\\Console\\Commands\\ComputeOkrAutoTargets@handle",
        "expected_test_path": "tests/Unit/ComputeOkrAutoTargetsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeOkrAutoTargets;\n\nclass ComputeOkrAutoTargetsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeOkrAutoTargets@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeOkrAutoTargets@handle is PROOF_READY but no test file at tests/Unit/ComputeOkrAutoTargetsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeRecognitionPredictions.php::App\\Console\\Commands\\ComputeRecognitionPredictions::handle",
        "fqmn": "App\\Console\\Commands\\ComputeRecognitionPredictions@handle",
        "expected_test_path": "tests/Unit/ComputeRecognitionPredictionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeRecognitionPredictions;\n\nclass ComputeRecognitionPredictionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeRecognitionPredictions@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeRecognitionPredictions@handle is PROOF_READY but no test file at tests/Unit/ComputeRecognitionPredictionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeRiskIntegritySnapshots.php::App\\Console\\Commands\\ComputeRiskIntegritySnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeRiskIntegritySnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeRiskIntegritySnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeRiskIntegritySnapshots;\n\nclass ComputeRiskIntegritySnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeRiskIntegritySnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeRiskIntegritySnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeRiskIntegritySnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeSilentDaysMapSnapshots.php::App\\Console\\Commands\\ComputeSilentDaysMapSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeSilentDaysMapSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeSilentDaysMapSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeSilentDaysMapSnapshots;\n\nclass ComputeSilentDaysMapSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeSilentDaysMapSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeSilentDaysMapSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeSilentDaysMapSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeTeamCoverageSnapshots.php::App\\Console\\Commands\\ComputeTeamCoverageSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeTeamCoverageSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeTeamCoverageSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeTeamCoverageSnapshots;\n\nclass ComputeTeamCoverageSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeTeamCoverageSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeTeamCoverageSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeTeamCoverageSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeThursdayOffRewards.php::App\\Console\\Commands\\ComputeThursdayOffRewards::handle",
        "fqmn": "App\\Console\\Commands\\ComputeThursdayOffRewards@handle",
        "expected_test_path": "tests/Unit/ComputeThursdayOffRewardsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeThursdayOffRewards;\n\nclass ComputeThursdayOffRewardsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeThursdayOffRewards@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeThursdayOffRewards@handle is PROOF_READY but no test file at tests/Unit/ComputeThursdayOffRewardsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeTimelinessSnapshots.php::App\\Console\\Commands\\ComputeTimelinessSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeTimelinessSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeTimelinessSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeTimelinessSnapshots;\n\nclass ComputeTimelinessSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeTimelinessSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeTimelinessSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeTimelinessSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ComputeUnderRecognizedSnapshots.php::App\\Console\\Commands\\ComputeUnderRecognizedSnapshots::handle",
        "fqmn": "App\\Console\\Commands\\ComputeUnderRecognizedSnapshots@handle",
        "expected_test_path": "tests/Unit/ComputeUnderRecognizedSnapshotsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ComputeUnderRecognizedSnapshots;\n\nclass ComputeUnderRecognizedSnapshotsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ComputeUnderRecognizedSnapshots@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ComputeUnderRecognizedSnapshots@handle is PROOF_READY but no test file at tests/Unit/ComputeUnderRecognizedSnapshotsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/CreateUser.php::App\\Console\\Commands\\CreateUser::handle",
        "fqmn": "App\\Console\\Commands\\CreateUser@handle",
        "expected_test_path": "tests/Unit/CreateUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\CreateUser;\n\nclass CreateUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\CreateUser@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\CreateUser@handle is PROOF_READY but no test file at tests/Unit/CreateUserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/DemoCompanyRefresh.php::App\\Console\\Commands\\DemoCompanyRefresh::handle",
        "fqmn": "App\\Console\\Commands\\DemoCompanyRefresh@handle",
        "expected_test_path": "tests/Unit/DemoCompanyRefreshTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\DemoCompanyRefresh;\n\nclass DemoCompanyRefreshTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DemoCompanyRefresh@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\DemoCompanyRefresh@handle is PROOF_READY but no test file at tests/Unit/DemoCompanyRefreshTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/DemoCompanySeed.php::App\\Console\\Commands\\DemoCompanySeed::handle",
        "fqmn": "App\\Console\\Commands\\DemoCompanySeed@handle",
        "expected_test_path": "tests/Unit/DemoCompanySeedTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\DemoCompanySeed;\n\nclass DemoCompanySeedTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DemoCompanySeed@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\DemoCompanySeed@handle is PROOF_READY but no test file at tests/Unit/DemoCompanySeedTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/DemoCompanyShape.php::App\\Console\\Commands\\DemoCompanyShape::handle",
        "fqmn": "App\\Console\\Commands\\DemoCompanyShape@handle",
        "expected_test_path": "tests/Unit/DemoCompanyShapeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\DemoCompanyShape;\n\nclass DemoCompanyShapeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DemoCompanyShape@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\DemoCompanyShape@handle is PROOF_READY but no test file at tests/Unit/DemoCompanyShapeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/DemoCompanyStats.php::App\\Console\\Commands\\DemoCompanyStats::handle",
        "fqmn": "App\\Console\\Commands\\DemoCompanyStats@handle",
        "expected_test_path": "tests/Unit/DemoCompanyStatsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\DemoCompanyStats;\n\nclass DemoCompanyStatsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DemoCompanyStats@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\DemoCompanyStats@handle is PROOF_READY but no test file at tests/Unit/DemoCompanyStatsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/DetectZohoSideEditsCommand.php::App\\Console\\Commands\\DetectZohoSideEditsCommand::handle",
        "fqmn": "App\\Console\\Commands\\DetectZohoSideEditsCommand@handle",
        "expected_test_path": "tests/Unit/DetectZohoSideEditsCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\DetectZohoSideEditsCommand;\n\nclass DetectZohoSideEditsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DetectZohoSideEditsCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\DetectZohoSideEditsCommand@handle is PROOF_READY but no test file at tests/Unit/DetectZohoSideEditsCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/DispatchDueDunningAttempts.php::App\\Console\\Commands\\DispatchDueDunningAttempts::handle",
        "fqmn": "App\\Console\\Commands\\DispatchDueDunningAttempts@handle",
        "expected_test_path": "tests/Unit/DispatchDueDunningAttemptsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\DispatchDueDunningAttempts;\n\nclass DispatchDueDunningAttemptsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DispatchDueDunningAttempts@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\DispatchDueDunningAttempts@handle is PROOF_READY but no test file at tests/Unit/DispatchDueDunningAttemptsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/DryRunLatestImport.php::App\\Console\\Commands\\DryRunLatestImport::handle",
        "fqmn": "App\\Console\\Commands\\DryRunLatestImport@handle",
        "expected_test_path": "tests/Unit/DryRunLatestImportTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\DryRunLatestImport;\n\nclass DryRunLatestImportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\DryRunLatestImport@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\DryRunLatestImport@handle is PROOF_READY but no test file at tests/Unit/DryRunLatestImportTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/EnableHireReadinessCommand.php::App\\Console\\Commands\\EnableHireReadinessCommand::handle",
        "fqmn": "App\\Console\\Commands\\EnableHireReadinessCommand@handle",
        "expected_test_path": "tests/Unit/EnableHireReadinessCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\EnableHireReadinessCommand;\n\nclass EnableHireReadinessCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\EnableHireReadinessCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\EnableHireReadinessCommand@handle is PROOF_READY but no test file at tests/Unit/EnableHireReadinessCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/EnforceRewardApprovals.php::App\\Console\\Commands\\EnforceRewardApprovals::handle",
        "fqmn": "App\\Console\\Commands\\EnforceRewardApprovals@handle",
        "expected_test_path": "tests/Unit/EnforceRewardApprovalsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\EnforceRewardApprovals;\n\nclass EnforceRewardApprovalsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\EnforceRewardApprovals@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\EnforceRewardApprovals@handle is PROOF_READY but no test file at tests/Unit/EnforceRewardApprovalsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ExpireAndForfeitPoints.php::App\\Console\\Commands\\ExpireAndForfeitPoints::handle",
        "fqmn": "App\\Console\\Commands\\ExpireAndForfeitPoints@handle",
        "expected_test_path": "tests/Unit/ExpireAndForfeitPointsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ExpireAndForfeitPoints;\n\nclass ExpireAndForfeitPointsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ExpireAndForfeitPoints@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ExpireAndForfeitPoints@handle is PROOF_READY but no test file at tests/Unit/ExpireAndForfeitPointsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ExpireExtraSeats.php::App\\Console\\Commands\\ExpireExtraSeats::handle",
        "fqmn": "App\\Console\\Commands\\ExpireExtraSeats@handle",
        "expected_test_path": "tests/Unit/ExpireExtraSeatsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ExpireExtraSeats;\n\nclass ExpireExtraSeatsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ExpireExtraSeats@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ExpireExtraSeats@handle is PROOF_READY but no test file at tests/Unit/ExpireExtraSeatsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ExpireFrozenCompanyCancellationPoints.php::App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints::handle",
        "fqmn": "App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints@handle",
        "expected_test_path": "tests/Unit/ExpireFrozenCompanyCancellationPointsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints;\n\nclass ExpireFrozenCompanyCancellationPointsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ExpireFrozenCompanyCancellationPoints@handle is PROOF_READY but no test file at tests/Unit/ExpireFrozenCompanyCancellationPointsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ExpireTrialsCommand.php::App\\Console\\Commands\\ExpireTrialsCommand::handle",
        "fqmn": "App\\Console\\Commands\\ExpireTrialsCommand@handle",
        "expected_test_path": "tests/Unit/ExpireTrialsCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ExpireTrialsCommand;\n\nclass ExpireTrialsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ExpireTrialsCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ExpireTrialsCommand@handle is PROOF_READY but no test file at tests/Unit/ExpireTrialsCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/FinalizeBackorders.php::App\\Console\\Commands\\FinalizeBackorders::handle",
        "fqmn": "App\\Console\\Commands\\FinalizeBackorders@handle",
        "expected_test_path": "tests/Unit/FinalizeBackordersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\FinalizeBackorders;\n\nclass FinalizeBackordersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\FinalizeBackorders@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\FinalizeBackorders@handle is PROOF_READY but no test file at tests/Unit/FinalizeBackordersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/FixPurchaseOrderReferences.php::App\\Console\\Commands\\FixPurchaseOrderReferences::handle",
        "fqmn": "App\\Console\\Commands\\FixPurchaseOrderReferences@handle",
        "expected_test_path": "tests/Unit/FixPurchaseOrderReferencesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\FixPurchaseOrderReferences;\n\nclass FixPurchaseOrderReferencesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\FixPurchaseOrderReferences@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\FixPurchaseOrderReferences@handle is PROOF_READY but no test file at tests/Unit/FixPurchaseOrderReferencesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/FixSuperAdmin.php::App\\Console\\Commands\\FixSuperAdmin::handle",
        "fqmn": "App\\Console\\Commands\\FixSuperAdmin@handle",
        "expected_test_path": "tests/Unit/FixSuperAdminTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\FixSuperAdmin;\n\nclass FixSuperAdminTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\FixSuperAdmin@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\FixSuperAdmin@handle is PROOF_READY but no test file at tests/Unit/FixSuperAdminTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/FixUsersLastLoginColumns.php::App\\Console\\Commands\\FixUsersLastLoginColumns::handle",
        "fqmn": "App\\Console\\Commands\\FixUsersLastLoginColumns@handle",
        "expected_test_path": "tests/Unit/FixUsersLastLoginColumnsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\FixUsersLastLoginColumns;\n\nclass FixUsersLastLoginColumnsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\FixUsersLastLoginColumns@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\FixUsersLastLoginColumns@handle is PROOF_READY but no test file at tests/Unit/FixUsersLastLoginColumnsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/GenerateApiToken.php::App\\Console\\Commands\\GenerateApiToken::handle",
        "fqmn": "App\\Console\\Commands\\GenerateApiToken@handle",
        "expected_test_path": "tests/Unit/GenerateApiTokenTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\GenerateApiToken;\n\nclass GenerateApiTokenTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\GenerateApiToken@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\GenerateApiToken@handle is PROOF_READY but no test file at tests/Unit/GenerateApiTokenTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/HelpSelfTest.php::App\\Console\\Commands\\HelpSelfTest::handle",
        "fqmn": "App\\Console\\Commands\\HelpSelfTest@handle",
        "expected_test_path": "tests/Unit/HelpSelfTestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\HelpSelfTest;\n\nclass HelpSelfTestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\HelpSelfTest@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\HelpSelfTest@handle is PROOF_READY but no test file at tests/Unit/HelpSelfTestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ImportCreateDirect.php::App\\Console\\Commands\\ImportCreateDirect::handle",
        "fqmn": "App\\Console\\Commands\\ImportCreateDirect@handle",
        "expected_test_path": "tests/Unit/ImportCreateDirectTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ImportCreateDirect;\n\nclass ImportCreateDirectTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ImportCreateDirect@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ImportCreateDirect@handle is PROOF_READY but no test file at tests/Unit/ImportCreateDirectTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ImportCreateDummyAndApply.php::App\\Console\\Commands\\ImportCreateDummyAndApply::handle",
        "fqmn": "App\\Console\\Commands\\ImportCreateDummyAndApply@handle",
        "expected_test_path": "tests/Unit/ImportCreateDummyAndApplyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ImportCreateDummyAndApply;\n\nclass ImportCreateDummyAndApplyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ImportCreateDummyAndApply@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ImportCreateDummyAndApply@handle is PROOF_READY but no test file at tests/Unit/ImportCreateDummyAndApplyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ImportCreateXlsxAndApply.php::App\\Console\\Commands\\ImportCreateXlsxAndApply::handle",
        "fqmn": "App\\Console\\Commands\\ImportCreateXlsxAndApply@handle",
        "expected_test_path": "tests/Unit/ImportCreateXlsxAndApplyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ImportCreateXlsxAndApply;\n\nclass ImportCreateXlsxAndApplyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ImportCreateXlsxAndApply@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ImportCreateXlsxAndApply@handle is PROOF_READY but no test file at tests/Unit/ImportCreateXlsxAndApplyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ImportTestCustomHeaders.php::App\\Console\\Commands\\ImportTestCustomHeaders::handle",
        "fqmn": "App\\Console\\Commands\\ImportTestCustomHeaders@handle",
        "expected_test_path": "tests/Unit/ImportTestCustomHeadersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ImportTestCustomHeaders;\n\nclass ImportTestCustomHeadersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ImportTestCustomHeaders@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ImportTestCustomHeaders@handle is PROOF_READY but no test file at tests/Unit/ImportTestCustomHeadersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Invoices/ProcessSmartInvoicesCommand.php::App\\Console\\Commands\\Invoices\\ProcessSmartInvoicesCommand::handle",
        "fqmn": "App\\Console\\Commands\\Invoices\\ProcessSmartInvoicesCommand@handle",
        "expected_test_path": "tests/Unit/ProcessSmartInvoicesCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Invoices\\ProcessSmartInvoicesCommand;\n\nclass ProcessSmartInvoicesCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Invoices\\ProcessSmartInvoicesCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Invoices\\ProcessSmartInvoicesCommand@handle is PROOF_READY but no test file at tests/Unit/ProcessSmartInvoicesCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/MarkUserNotificationsRead.php::App\\Console\\Commands\\MarkUserNotificationsRead::handle",
        "fqmn": "App\\Console\\Commands\\MarkUserNotificationsRead@handle",
        "expected_test_path": "tests/Unit/MarkUserNotificationsReadTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\MarkUserNotificationsRead;\n\nclass MarkUserNotificationsReadTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MarkUserNotificationsRead@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\MarkUserNotificationsRead@handle is PROOF_READY but no test file at tests/Unit/MarkUserNotificationsReadTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/MetricsAuditCommand.php::App\\Console\\Commands\\MetricsAuditCommand::handle",
        "fqmn": "App\\Console\\Commands\\MetricsAuditCommand@handle",
        "expected_test_path": "tests/Unit/MetricsAuditCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\MetricsAuditCommand;\n\nclass MetricsAuditCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MetricsAuditCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\MetricsAuditCommand@handle is PROOF_READY but no test file at tests/Unit/MetricsAuditCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/MetricsComputeCommand.php::App\\Console\\Commands\\MetricsComputeCommand::handle",
        "fqmn": "App\\Console\\Commands\\MetricsComputeCommand@handle",
        "expected_test_path": "tests/Unit/MetricsComputeCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\MetricsComputeCommand;\n\nclass MetricsComputeCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MetricsComputeCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\MetricsComputeCommand@handle is PROOF_READY but no test file at tests/Unit/MetricsComputeCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/MetricsRecomputeRangeCommand.php::App\\Console\\Commands\\MetricsRecomputeRangeCommand::handle",
        "fqmn": "App\\Console\\Commands\\MetricsRecomputeRangeCommand@handle",
        "expected_test_path": "tests/Unit/MetricsRecomputeRangeCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\MetricsRecomputeRangeCommand;\n\nclass MetricsRecomputeRangeCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MetricsRecomputeRangeCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\MetricsRecomputeRangeCommand@handle is PROOF_READY but no test file at tests/Unit/MetricsRecomputeRangeCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/MetricsRefreshTodayCommand.php::App\\Console\\Commands\\MetricsRefreshTodayCommand::handle",
        "fqmn": "App\\Console\\Commands\\MetricsRefreshTodayCommand@handle",
        "expected_test_path": "tests/Unit/MetricsRefreshTodayCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\MetricsRefreshTodayCommand;\n\nclass MetricsRefreshTodayCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MetricsRefreshTodayCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\MetricsRefreshTodayCommand@handle is PROOF_READY but no test file at tests/Unit/MetricsRefreshTodayCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/MigrateAutomationBudgetsToSar.php::App\\Console\\Commands\\MigrateAutomationBudgetsToSar::handle",
        "fqmn": "App\\Console\\Commands\\MigrateAutomationBudgetsToSar@handle",
        "expected_test_path": "tests/Unit/MigrateAutomationBudgetsToSarTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\MigrateAutomationBudgetsToSar;\n\nclass MigrateAutomationBudgetsToSarTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MigrateAutomationBudgetsToSar@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\MigrateAutomationBudgetsToSar@handle is PROOF_READY but no test file at tests/Unit/MigrateAutomationBudgetsToSarTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/MigrateRecognitionTransactionsToPoints.php::App\\Console\\Commands\\MigrateRecognitionTransactionsToPoints::handle",
        "fqmn": "App\\Console\\Commands\\MigrateRecognitionTransactionsToPoints@handle",
        "expected_test_path": "tests/Unit/MigrateRecognitionTransactionsToPointsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\MigrateRecognitionTransactionsToPoints;\n\nclass MigrateRecognitionTransactionsToPointsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\MigrateRecognitionTransactionsToPoints@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\MigrateRecognitionTransactionsToPoints@handle is PROOF_READY but no test file at tests/Unit/MigrateRecognitionTransactionsToPointsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/NotifyTrialEndingSoonCommand.php::App\\Console\\Commands\\NotifyTrialEndingSoonCommand::handle",
        "fqmn": "App\\Console\\Commands\\NotifyTrialEndingSoonCommand@handle",
        "expected_test_path": "tests/Unit/NotifyTrialEndingSoonCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\NotifyTrialEndingSoonCommand;\n\nclass NotifyTrialEndingSoonCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\NotifyTrialEndingSoonCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\NotifyTrialEndingSoonCommand@handle is PROOF_READY but no test file at tests/Unit/NotifyTrialEndingSoonCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/AutoSeedLocalOccasions.php::App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions@handle",
        "expected_test_path": "tests/Unit/AutoSeedLocalOccasionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions;\n\nclass AutoSeedLocalOccasionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\AutoSeedLocalOccasions@handle is PROOF_READY but no test file at tests/Unit/AutoSeedLocalOccasionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/BackfillManagerNotices.php::App\\Console\\Commands\\Occasions\\BackfillManagerNotices::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\BackfillManagerNotices@handle",
        "expected_test_path": "tests/Unit/BackfillManagerNoticesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\BackfillManagerNotices;\n\nclass BackfillManagerNoticesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\BackfillManagerNotices@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\BackfillManagerNotices@handle is PROOF_READY but no test file at tests/Unit/BackfillManagerNoticesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/CleanupOldEvents.php::App\\Console\\Commands\\Occasions\\CleanupOldEvents::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\CleanupOldEvents@handle",
        "expected_test_path": "tests/Unit/CleanupOldEventsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\CleanupOldEvents;\n\nclass CleanupOldEventsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\CleanupOldEvents@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\CleanupOldEvents@handle is PROOF_READY but no test file at tests/Unit/CleanupOldEventsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/QueueHolidays.php::App\\Console\\Commands\\Occasions\\QueueHolidays::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\QueueHolidays@handle",
        "expected_test_path": "tests/Unit/QueueHolidaysTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\QueueHolidays;\n\nclass QueueHolidaysTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\QueueHolidays@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\QueueHolidays@handle is PROOF_READY but no test file at tests/Unit/QueueHolidaysTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/QueueWeeklyDigests.php::App\\Console\\Commands\\Occasions\\QueueWeeklyDigests::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\QueueWeeklyDigests@handle",
        "expected_test_path": "tests/Unit/QueueWeeklyDigestsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\QueueWeeklyDigests;\n\nclass QueueWeeklyDigestsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\QueueWeeklyDigests@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\QueueWeeklyDigests@handle is PROOF_READY but no test file at tests/Unit/QueueWeeklyDigestsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/SendPasswordResetTest.php::App\\Console\\Commands\\Occasions\\SendPasswordResetTest::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\SendPasswordResetTest@handle",
        "expected_test_path": "tests/Unit/SendPasswordResetTestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\SendPasswordResetTest;\n\nclass SendPasswordResetTestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\SendPasswordResetTest@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\SendPasswordResetTest@handle is PROOF_READY but no test file at tests/Unit/SendPasswordResetTestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/SendSmtpTest.php::App\\Console\\Commands\\Occasions\\SendSmtpTest::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\SendSmtpTest@handle",
        "expected_test_path": "tests/Unit/SendSmtpTestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\SendSmtpTest;\n\nclass SendSmtpTestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\SendSmtpTest@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\SendSmtpTest@handle is PROOF_READY but no test file at tests/Unit/SendSmtpTestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/SendTestOccasion.php::App\\Console\\Commands\\Occasions\\SendTestOccasion::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\SendTestOccasion@handle",
        "expected_test_path": "tests/Unit/SendTestOccasionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\SendTestOccasion;\n\nclass SendTestOccasionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\SendTestOccasion@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\SendTestOccasion@handle is PROOF_READY but no test file at tests/Unit/SendTestOccasionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/Occasions/SendZeptoTest.php::App\\Console\\Commands\\Occasions\\SendZeptoTest::handle",
        "fqmn": "App\\Console\\Commands\\Occasions\\SendZeptoTest@handle",
        "expected_test_path": "tests/Unit/SendZeptoTestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\Occasions\\SendZeptoTest;\n\nclass SendZeptoTestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\Occasions\\SendZeptoTest@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\Occasions\\SendZeptoTest@handle is PROOF_READY but no test file at tests/Unit/SendZeptoTestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/PopulateDocumentFieldIndex.php::App\\Console\\Commands\\PopulateDocumentFieldIndex::handle",
        "fqmn": "App\\Console\\Commands\\PopulateDocumentFieldIndex@handle",
        "expected_test_path": "tests/Unit/PopulateDocumentFieldIndexTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\PopulateDocumentFieldIndex;\n\nclass PopulateDocumentFieldIndexTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\PopulateDocumentFieldIndex@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\PopulateDocumentFieldIndex@handle is PROOF_READY but no test file at tests/Unit/PopulateDocumentFieldIndexTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/PrepareVatReturn.php::App\\Console\\Commands\\PrepareVatReturn::handle",
        "fqmn": "App\\Console\\Commands\\PrepareVatReturn@handle",
        "expected_test_path": "tests/Unit/PrepareVatReturnTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\PrepareVatReturn;\n\nclass PrepareVatReturnTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\PrepareVatReturn@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\PrepareVatReturn@handle is PROOF_READY but no test file at tests/Unit/PrepareVatReturnTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ProcessSmartInvoices.php::App\\Console\\Commands\\ProcessSmartInvoices::handle",
        "fqmn": "App\\Console\\Commands\\ProcessSmartInvoices@handle",
        "expected_test_path": "tests/Unit/ProcessSmartInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ProcessSmartInvoices;\n\nclass ProcessSmartInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ProcessSmartInvoices@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ProcessSmartInvoices@handle is PROOF_READY but no test file at tests/Unit/ProcessSmartInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/PruneAutomationHistory.php::App\\Console\\Commands\\PruneAutomationHistory::handle",
        "fqmn": "App\\Console\\Commands\\PruneAutomationHistory@handle",
        "expected_test_path": "tests/Unit/PruneAutomationHistoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\PruneAutomationHistory;\n\nclass PruneAutomationHistoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\PruneAutomationHistory@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\PruneAutomationHistory@handle is PROOF_READY but no test file at tests/Unit/PruneAutomationHistoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/PruneCheckoutDrafts.php::App\\Console\\Commands\\PruneCheckoutDrafts::handle",
        "fqmn": "App\\Console\\Commands\\PruneCheckoutDrafts@handle",
        "expected_test_path": "tests/Unit/PruneCheckoutDraftsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\PruneCheckoutDrafts;\n\nclass PruneCheckoutDraftsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\PruneCheckoutDrafts@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\PruneCheckoutDrafts@handle is PROOF_READY but no test file at tests/Unit/PruneCheckoutDraftsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/PruneNotifications.php::App\\Console\\Commands\\PruneNotifications::handle",
        "fqmn": "App\\Console\\Commands\\PruneNotifications@handle",
        "expected_test_path": "tests/Unit/PruneNotificationsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\PruneNotifications;\n\nclass PruneNotificationsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\PruneNotifications@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\PruneNotifications@handle is PROOF_READY but no test file at tests/Unit/PruneNotificationsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/RebuildCrossTenantBenchmarksCommand.php::App\\Console\\Commands\\RebuildCrossTenantBenchmarksCommand::handle",
        "fqmn": "App\\Console\\Commands\\RebuildCrossTenantBenchmarksCommand@handle",
        "expected_test_path": "tests/Unit/RebuildCrossTenantBenchmarksCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\RebuildCrossTenantBenchmarksCommand;\n\nclass RebuildCrossTenantBenchmarksCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RebuildCrossTenantBenchmarksCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\RebuildCrossTenantBenchmarksCommand@handle is PROOF_READY but no test file at tests/Unit/RebuildCrossTenantBenchmarksCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ReconcileOrderInvoices.php::App\\Console\\Commands\\ReconcileOrderInvoices::handle",
        "fqmn": "App\\Console\\Commands\\ReconcileOrderInvoices@handle",
        "expected_test_path": "tests/Unit/ReconcileOrderInvoicesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ReconcileOrderInvoices;\n\nclass ReconcileOrderInvoicesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ReconcileOrderInvoices@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ReconcileOrderInvoices@handle is PROOF_READY but no test file at tests/Unit/ReconcileOrderInvoicesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ReconcileSubscriptions.php::App\\Console\\Commands\\ReconcileSubscriptions::handle",
        "fqmn": "App\\Console\\Commands\\ReconcileSubscriptions@handle",
        "expected_test_path": "tests/Unit/ReconcileSubscriptionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ReconcileSubscriptions;\n\nclass ReconcileSubscriptionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ReconcileSubscriptions@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ReconcileSubscriptions@handle is PROOF_READY but no test file at tests/Unit/ReconcileSubscriptionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ReconcileTapOrphans.php::App\\Console\\Commands\\ReconcileTapOrphans::handle",
        "fqmn": "App\\Console\\Commands\\ReconcileTapOrphans@handle",
        "expected_test_path": "tests/Unit/ReconcileTapOrphansTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ReconcileTapOrphans;\n\nclass ReconcileTapOrphansTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ReconcileTapOrphans@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ReconcileTapOrphans@handle is PROOF_READY but no test file at tests/Unit/ReconcileTapOrphansTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ReconcileTapSettlements.php::App\\Console\\Commands\\ReconcileTapSettlements::handle",
        "fqmn": "App\\Console\\Commands\\ReconcileTapSettlements@handle",
        "expected_test_path": "tests/Unit/ReconcileTapSettlementsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ReconcileTapSettlements;\n\nclass ReconcileTapSettlementsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ReconcileTapSettlements@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ReconcileTapSettlements@handle is PROOF_READY but no test file at tests/Unit/ReconcileTapSettlementsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/RunBiasAudit.php::App\\Console\\Commands\\RunBiasAudit::handle",
        "fqmn": "App\\Console\\Commands\\RunBiasAudit@handle",
        "expected_test_path": "tests/Unit/RunBiasAuditTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\RunBiasAudit;\n\nclass RunBiasAuditTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RunBiasAudit@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\RunBiasAudit@handle is PROOF_READY but no test file at tests/Unit/RunBiasAuditTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/RunRaiseEvaluation.php::App\\Console\\Commands\\RunRaiseEvaluation::handle",
        "fqmn": "App\\Console\\Commands\\RunRaiseEvaluation@handle",
        "expected_test_path": "tests/Unit/RunRaiseEvaluationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\RunRaiseEvaluation;\n\nclass RunRaiseEvaluationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\RunRaiseEvaluation@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\RunRaiseEvaluation@handle is PROOF_READY but no test file at tests/Unit/RunRaiseEvaluationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ScanZohoSideDrift.php::App\\Console\\Commands\\ScanZohoSideDrift::handle",
        "fqmn": "App\\Console\\Commands\\ScanZohoSideDrift@handle",
        "expected_test_path": "tests/Unit/ScanZohoSideDriftTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ScanZohoSideDrift;\n\nclass ScanZohoSideDriftTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ScanZohoSideDrift@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ScanZohoSideDrift@handle is PROOF_READY but no test file at tests/Unit/ScanZohoSideDriftTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ScheduleSuccessionNudges.php::App\\Console\\Commands\\ScheduleSuccessionNudges::handle",
        "fqmn": "App\\Console\\Commands\\ScheduleSuccessionNudges@handle",
        "expected_test_path": "tests/Unit/ScheduleSuccessionNudgesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ScheduleSuccessionNudges;\n\nclass ScheduleSuccessionNudgesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ScheduleSuccessionNudges@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ScheduleSuccessionNudges@handle is PROOF_READY but no test file at tests/Unit/ScheduleSuccessionNudgesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/SeedDemoAvatars.php::App\\Console\\Commands\\SeedDemoAvatars::handle",
        "fqmn": "App\\Console\\Commands\\SeedDemoAvatars@handle",
        "expected_test_path": "tests/Unit/SeedDemoAvatarsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\SeedDemoAvatars;\n\nclass SeedDemoAvatarsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SeedDemoAvatars@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\SeedDemoAvatars@handle is PROOF_READY but no test file at tests/Unit/SeedDemoAvatarsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/SeedPromotionProfilesCommand.php::App\\Console\\Commands\\SeedPromotionProfilesCommand::handle",
        "fqmn": "App\\Console\\Commands\\SeedPromotionProfilesCommand@handle",
        "expected_test_path": "tests/Unit/SeedPromotionProfilesCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\SeedPromotionProfilesCommand;\n\nclass SeedPromotionProfilesCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SeedPromotionProfilesCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\SeedPromotionProfilesCommand@handle is PROOF_READY but no test file at tests/Unit/SeedPromotionProfilesCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/SeedSiteSettings.php::App\\Console\\Commands\\SeedSiteSettings::handle",
        "fqmn": "App\\Console\\Commands\\SeedSiteSettings@handle",
        "expected_test_path": "tests/Unit/SeedSiteSettingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\SeedSiteSettings;\n\nclass SeedSiteSettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SeedSiteSettings@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\SeedSiteSettings@handle is PROOF_READY but no test file at tests/Unit/SeedSiteSettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/SeedTomatoSitesSettings.php::App\\Console\\Commands\\SeedTomatoSitesSettings::handle",
        "fqmn": "App\\Console\\Commands\\SeedTomatoSitesSettings@handle",
        "expected_test_path": "tests/Unit/SeedTomatoSitesSettingsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\SeedTomatoSitesSettings;\n\nclass SeedTomatoSitesSettingsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SeedTomatoSitesSettings@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\SeedTomatoSitesSettings@handle is PROOF_READY but no test file at tests/Unit/SeedTomatoSitesSettingsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/SendCustomKpiReminders.php::App\\Console\\Commands\\SendCustomKpiReminders::handle",
        "fqmn": "App\\Console\\Commands\\SendCustomKpiReminders@handle",
        "expected_test_path": "tests/Unit/SendCustomKpiRemindersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\SendCustomKpiReminders;\n\nclass SendCustomKpiRemindersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SendCustomKpiReminders@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\SendCustomKpiReminders@handle is PROOF_READY but no test file at tests/Unit/SendCustomKpiRemindersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/SimulateDigestSchedule.php::App\\Console\\Commands\\SimulateDigestSchedule::handle",
        "fqmn": "App\\Console\\Commands\\SimulateDigestSchedule@handle",
        "expected_test_path": "tests/Unit/SimulateDigestScheduleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\SimulateDigestSchedule;\n\nclass SimulateDigestScheduleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SimulateDigestSchedule@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\SimulateDigestSchedule@handle is PROOF_READY but no test file at tests/Unit/SimulateDigestScheduleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/SweepHirePollResponsesCommand.php::App\\Console\\Commands\\SweepHirePollResponsesCommand::handle",
        "fqmn": "App\\Console\\Commands\\SweepHirePollResponsesCommand@handle",
        "expected_test_path": "tests/Unit/SweepHirePollResponsesCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\SweepHirePollResponsesCommand;\n\nclass SweepHirePollResponsesCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SweepHirePollResponsesCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\SweepHirePollResponsesCommand@handle is PROOF_READY but no test file at tests/Unit/SweepHirePollResponsesCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/SweepRejectionQuests.php::App\\Console\\Commands\\SweepRejectionQuests::handle",
        "fqmn": "App\\Console\\Commands\\SweepRejectionQuests@handle",
        "expected_test_path": "tests/Unit/SweepRejectionQuestsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\SweepRejectionQuests;\n\nclass SweepRejectionQuestsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\SweepRejectionQuests@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\SweepRejectionQuests@handle is PROOF_READY but no test file at tests/Unit/SweepRejectionQuestsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/TapSelfTest.php::App\\Console\\Commands\\TapSelfTest::handle",
        "fqmn": "App\\Console\\Commands\\TapSelfTest@handle",
        "expected_test_path": "tests/Unit/TapSelfTestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\TapSelfTest;\n\nclass TapSelfTestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TapSelfTest@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\TapSelfTest@handle is PROOF_READY but no test file at tests/Unit/TapSelfTestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/TapSubscriptionsSelfTest.php::App\\Console\\Commands\\TapSubscriptionsSelfTest::handle",
        "fqmn": "App\\Console\\Commands\\TapSubscriptionsSelfTest@handle",
        "expected_test_path": "tests/Unit/TapSubscriptionsSelfTestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\TapSubscriptionsSelfTest;\n\nclass TapSubscriptionsSelfTestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TapSubscriptionsSelfTest@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\TapSubscriptionsSelfTest@handle is PROOF_READY but no test file at tests/Unit/TapSubscriptionsSelfTestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/TestInvoicePayments.php::App\\Console\\Commands\\TestInvoicePayments::handle",
        "fqmn": "App\\Console\\Commands\\TestInvoicePayments@handle",
        "expected_test_path": "tests/Unit/TestInvoicePaymentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\TestInvoicePayments;\n\nclass TestInvoicePaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TestInvoicePayments@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\TestInvoicePayments@handle is PROOF_READY but no test file at tests/Unit/TestInvoicePaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/TestWalletAdvances.php::App\\Console\\Commands\\TestWalletAdvances::handle",
        "fqmn": "App\\Console\\Commands\\TestWalletAdvances@handle",
        "expected_test_path": "tests/Unit/TestWalletAdvancesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\TestWalletAdvances;\n\nclass TestWalletAdvancesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TestWalletAdvances@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\TestWalletAdvances@handle is PROOF_READY but no test file at tests/Unit/TestWalletAdvancesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/TestWalletPayments.php::App\\Console\\Commands\\TestWalletPayments::handle",
        "fqmn": "App\\Console\\Commands\\TestWalletPayments@handle",
        "expected_test_path": "tests/Unit/TestWalletPaymentsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\TestWalletPayments;\n\nclass TestWalletPaymentsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TestWalletPayments@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\TestWalletPayments@handle is PROOF_READY but no test file at tests/Unit/TestWalletPaymentsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ThreadsMigrateLegacyFields.php::App\\Console\\Commands\\ThreadsMigrateLegacyFields::handle",
        "fqmn": "App\\Console\\Commands\\ThreadsMigrateLegacyFields@handle",
        "expected_test_path": "tests/Unit/ThreadsMigrateLegacyFieldsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ThreadsMigrateLegacyFields;\n\nclass ThreadsMigrateLegacyFieldsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ThreadsMigrateLegacyFields@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ThreadsMigrateLegacyFields@handle is PROOF_READY but no test file at tests/Unit/ThreadsMigrateLegacyFieldsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/TickZohoOutbox.php::App\\Console\\Commands\\TickZohoOutbox::handle",
        "fqmn": "App\\Console\\Commands\\TickZohoOutbox@handle",
        "expected_test_path": "tests/Unit/TickZohoOutboxTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\TickZohoOutbox;\n\nclass TickZohoOutboxTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\TickZohoOutbox@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\TickZohoOutbox@handle is PROOF_READY but no test file at tests/Unit/TickZohoOutboxTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/UserCheckEmail.php::App\\Console\\Commands\\UserCheckEmail::handle",
        "fqmn": "App\\Console\\Commands\\UserCheckEmail@handle",
        "expected_test_path": "tests/Unit/UserCheckEmailTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\UserCheckEmail;\n\nclass UserCheckEmailTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\UserCheckEmail@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\UserCheckEmail@handle is PROOF_READY but no test file at tests/Unit/UserCheckEmailTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/UserReport.php::App\\Console\\Commands\\UserReport::handle",
        "fqmn": "App\\Console\\Commands\\UserReport@handle",
        "expected_test_path": "tests/Unit/UserReportTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\UserReport;\n\nclass UserReportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\UserReport@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\UserReport@handle is PROOF_READY but no test file at tests/Unit/UserReportTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/VerifyOccasionsSchemaUnification.php::App\\Console\\Commands\\VerifyOccasionsSchemaUnification::handle",
        "fqmn": "App\\Console\\Commands\\VerifyOccasionsSchemaUnification@handle",
        "expected_test_path": "tests/Unit/VerifyOccasionsSchemaUnificationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\VerifyOccasionsSchemaUnification;\n\nclass VerifyOccasionsSchemaUnificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\VerifyOccasionsSchemaUnification@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\VerifyOccasionsSchemaUnification@handle is PROOF_READY but no test file at tests/Unit/VerifyOccasionsSchemaUnificationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/WarmWidgetsCommand.php::App\\Console\\Commands\\WarmWidgetsCommand::handle",
        "fqmn": "App\\Console\\Commands\\WarmWidgetsCommand@handle",
        "expected_test_path": "tests/Unit/WarmWidgetsCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\WarmWidgetsCommand;\n\nclass WarmWidgetsCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WarmWidgetsCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\WarmWidgetsCommand@handle is PROOF_READY but no test file at tests/Unit/WarmWidgetsCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/WidgetsCacheCommand.php::App\\Console\\Commands\\WidgetsCacheCommand::handle",
        "fqmn": "App\\Console\\Commands\\WidgetsCacheCommand@handle",
        "expected_test_path": "tests/Unit/WidgetsCacheCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\WidgetsCacheCommand;\n\nclass WidgetsCacheCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WidgetsCacheCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\WidgetsCacheCommand@handle is PROOF_READY but no test file at tests/Unit/WidgetsCacheCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/WidgetsClearCommand.php::App\\Console\\Commands\\WidgetsClearCommand::handle",
        "fqmn": "App\\Console\\Commands\\WidgetsClearCommand@handle",
        "expected_test_path": "tests/Unit/WidgetsClearCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\WidgetsClearCommand;\n\nclass WidgetsClearCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WidgetsClearCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\WidgetsClearCommand@handle is PROOF_READY but no test file at tests/Unit/WidgetsClearCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/WidgetsSnapshotCommand.php::App\\Console\\Commands\\WidgetsSnapshotCommand::handle",
        "fqmn": "App\\Console\\Commands\\WidgetsSnapshotCommand@handle",
        "expected_test_path": "tests/Unit/WidgetsSnapshotCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\WidgetsSnapshotCommand;\n\nclass WidgetsSnapshotCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\WidgetsSnapshotCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\WidgetsSnapshotCommand@handle is PROOF_READY but no test file at tests/Unit/WidgetsSnapshotCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Cons",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Console/Commands/ZohoSeedFakeDocs.php::App\\Console\\Commands\\ZohoSeedFakeDocs::handle",
        "fqmn": "App\\Console\\Commands\\ZohoSeedFakeDocs@handle",
        "expected_test_path": "tests/Unit/ZohoSeedFakeDocsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Console\\Commands\\ZohoSeedFakeDocs;\n\nclass ZohoSeedFakeDocsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Console\\Commands\\ZohoSeedFakeDocs@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Console\\Commands\\ZohoSeedFakeDocs@handle is PROOF_READY but no test file at tests/Unit/ZohoSeedFakeDocsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Analytics/Policy/AnalyticsPolicy.php::App\\Domains\\Analytics\\Policy\\AnalyticsPolicy::allowEquity",
        "fqmn": "App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@allowEquity",
        "expected_test_path": "tests/Unit/AnalyticsPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Analytics\\Policy\\AnalyticsPolicy;\n\nclass AnalyticsPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@allowEquity\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allowequity_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@allowEquity is PROOF_READY but no test file at tests/Unit/AnalyticsPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Analytics/Policy/AnalyticsPolicy.php::App\\Domains\\Analytics\\Policy\\AnalyticsPolicy::applyConfidenceGating",
        "fqmn": "App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@applyConfidenceGating",
        "expected_test_path": "tests/Unit/AnalyticsPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Analytics\\Policy\\AnalyticsPolicy;\n\nclass AnalyticsPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@applyConfidenceGating\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applyconfidencegating_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Analytics\\Policy\\AnalyticsPolicy@applyConfidenceGating is PROOF_READY but no test file at tests/Unit/AnalyticsPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Decisions/ExecutiveBriefService.php::App\\Domains\\Decisions\\ExecutiveBriefService::weeklyBrief",
        "fqmn": "App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief",
        "expected_test_path": "tests/Unit/ExecutiveBriefServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Decisions\\ExecutiveBriefService;\n\nclass ExecutiveBriefServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_weeklybrief_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Decisions\\ExecutiveBriefService@weeklyBrief is PROOF_READY but no test file at tests/Unit/ExecutiveBriefServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Decisions/Services/ExecutiveBriefService.php::App\\Domains\\Decisions\\Services\\ExecutiveBriefService::generateWeekly",
        "fqmn": "App\\Domains\\Decisions\\Services\\ExecutiveBriefService@generateWeekly",
        "expected_test_path": "tests/Feature/ExecutiveBriefServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Decisions\\Services\\ExecutiveBriefService;\n\nclass ExecutiveBriefServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Decisions\\Services\\ExecutiveBriefService@generateWeekly\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generateweekly_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Decisions\\Services\\ExecutiveBriefService@generateWeekly is PROOF_READY but no test file at tests/Feature/ExecutiveBriefServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Classification/MetricClassificationEngine.php::App\\Domains\\Metrics\\Classification\\MetricClassificationEngine::validateClassification",
        "fqmn": "App\\Domains\\Metrics\\Classification\\MetricClassificationEngine@validateClassification",
        "expected_test_path": "tests/Unit/MetricClassificationEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Classification\\MetricClassificationEngine;\n\nclass MetricClassificationEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Classification\\MetricClassificationEngine@validateClassification\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validateclassification_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Classification\\MetricClassificationEngine@validateClassification is PROOF_READY but no test file at tests/Unit/MetricClassificationEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Commands/ComputeDayCommand.php::App\\Domains\\Metrics\\Commands\\ComputeDayCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeDayCommand@handle",
        "expected_test_path": "tests/Unit/ComputeDayCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Commands\\ComputeDayCommand;\n\nclass ComputeDayCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Commands\\ComputeDayCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Commands\\ComputeDayCommand@handle is PROOF_READY but no test file at tests/Unit/ComputeDayCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Commands/ComputeRangeCommand.php::App\\Domains\\Metrics\\Commands\\ComputeRangeCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\ComputeRangeCommand@handle",
        "expected_test_path": "tests/Unit/ComputeRangeCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Commands\\ComputeRangeCommand;\n\nclass ComputeRangeCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Commands\\ComputeRangeCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Commands\\ComputeRangeCommand@handle is PROOF_READY but no test file at tests/Unit/ComputeRangeCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Commands/RefreshTodayCommand.php::App\\Domains\\Metrics\\Commands\\RefreshTodayCommand::handle",
        "fqmn": "App\\Domains\\Metrics\\Commands\\RefreshTodayCommand@handle",
        "expected_test_path": "tests/Unit/RefreshTodayCommandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Commands\\RefreshTodayCommand;\n\nclass RefreshTodayCommandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Commands\\RefreshTodayCommand@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Commands\\RefreshTodayCommand@handle is PROOF_READY but no test file at tests/Unit/RefreshTodayCommandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceService.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceService::isSemanticChange",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceService@isSemanticChange",
        "expected_test_path": "tests/Unit/MetricGovernanceServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Governance\\MetricGovernanceService;\n\nclass MetricGovernanceServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Governance\\MetricGovernanceService@isSemanticChange\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_issemanticchange_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Governance\\MetricGovernanceService@isSemanticChange is PROOF_READY but no test file at tests/Unit/MetricGovernanceServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceService.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceService::snapshotDefinition",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceService@snapshotDefinition",
        "expected_test_path": "tests/Unit/MetricGovernanceServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Governance\\MetricGovernanceService;\n\nclass MetricGovernanceServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Governance\\MetricGovernanceService@snapshotDefinition\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_snapshotdefinition_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Governance\\MetricGovernanceService@snapshotDefinition is PROOF_READY but no test file at tests/Unit/MetricGovernanceServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Governance/MetricGovernanceValidator.php::App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator::validate",
        "fqmn": "App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator@validate",
        "expected_test_path": "tests/Unit/MetricGovernanceValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator;\n\nclass MetricGovernanceValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator@validate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Governance\\MetricGovernanceValidator@validate is PROOF_READY but no test file at tests/Unit/MetricGovernanceValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Jobs/ComputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@handle",
        "expected_test_path": "tests/Feature/ComputeFactsRangeJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob;\n\nclass ComputeFactsRangeJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Jobs\\ComputeFactsRangeJob@handle is PROOF_READY but no test file at tests/Feature/ComputeFactsRangeJobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Jobs/RecomputeFactsRangeJob.php::App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@handle",
        "expected_test_path": "tests/Feature/RecomputeFactsRangeJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob;\n\nclass RecomputeFactsRangeJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Jobs\\RecomputeFactsRangeJob@handle is PROOF_READY but no test file at tests/Feature/RecomputeFactsRangeJobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Jobs/RefreshTodayFactsJob.php::App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob::handle",
        "fqmn": "App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@handle",
        "expected_test_path": "tests/Feature/RefreshTodayFactsJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob;\n\nclass RefreshTodayFactsJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Jobs\\RefreshTodayFactsJob@handle is PROOF_READY but no test file at tests/Feature/RefreshTodayFactsJobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::businessEndUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@businessEndUtc",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\DayBoundary;\n\nclass DayBoundaryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\DayBoundary@businessEndUtc\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_businessendutc_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\DayBoundary@businessEndUtc is PROOF_READY but no test file at tests/Unit/DayBoundaryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::businessStartUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@businessStartUtc",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\DayBoundary;\n\nclass DayBoundaryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\DayBoundary@businessStartUtc\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_businessstartutc_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\DayBoundary@businessStartUtc is PROOF_READY but no test file at tests/Unit/DayBoundaryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::endUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@endUtc",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\DayBoundary;\n\nclass DayBoundaryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\DayBoundary@endUtc\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_endutc_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\DayBoundary@endUtc is PROOF_READY but no test file at tests/Unit/DayBoundaryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::isWeekendRiyadh",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@isWeekendRiyadh",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\DayBoundary;\n\nclass DayBoundaryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\DayBoundary@isWeekendRiyadh\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isweekendriyadh_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\DayBoundary@isWeekendRiyadh is PROOF_READY but no test file at tests/Unit/DayBoundaryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::riyadhDay",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@riyadhDay",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\DayBoundary;\n\nclass DayBoundaryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\DayBoundary@riyadhDay\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_riyadhday_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\DayBoundary@riyadhDay is PROOF_READY but no test file at tests/Unit/DayBoundaryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::startUtc",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@startUtc",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\DayBoundary;\n\nclass DayBoundaryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\DayBoundary@startUtc\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_startutc_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\DayBoundary@startUtc is PROOF_READY but no test file at tests/Unit/DayBoundaryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/DayBoundary.php::App\\Domains\\Metrics\\Support\\DayBoundary::todayRiyadh",
        "fqmn": "App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh",
        "expected_test_path": "tests/Unit/DayBoundaryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\DayBoundary;\n\nclass DayBoundaryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_todayriyadh_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\DayBoundary@todayRiyadh is PROOF_READY but no test file at tests/Unit/DayBoundaryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::isCanonical",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@isCanonical",
        "expected_test_path": "tests/Unit/PeriodKeyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\PeriodKey;\n\nclass PeriodKeyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\PeriodKey@isCanonical\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_iscanonical_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\PeriodKey@isCanonical is PROOF_READY but no test file at tests/Unit/PeriodKeyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::normalize",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@normalize",
        "expected_test_path": "tests/Unit/PeriodKeyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\PeriodKey;\n\nclass PeriodKeyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\PeriodKey@normalize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_normalize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\PeriodKey@normalize is PROOF_READY but no test file at tests/Unit/PeriodKeyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/PeriodKey.php::App\\Domains\\Metrics\\Support\\PeriodKey::toDays",
        "fqmn": "App\\Domains\\Metrics\\Support\\PeriodKey@toDays",
        "expected_test_path": "tests/Unit/PeriodKeyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\PeriodKey;\n\nclass PeriodKeyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\PeriodKey@toDays\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_todays_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\PeriodKey@toDays is PROOF_READY but no test file at tests/Unit/PeriodKeyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Metrics/Support/RedisLock.php::App\\Domains\\Metrics\\Support\\RedisLock::acquire",
        "fqmn": "App\\Domains\\Metrics\\Support\\RedisLock@acquire",
        "expected_test_path": "tests/Unit/RedisLockTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Metrics\\Support\\RedisLock;\n\nclass RedisLockTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Metrics\\Support\\RedisLock@acquire\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_acquire_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Metrics\\Support\\RedisLock@acquire is PROOF_READY but no test file at tests/Unit/RedisLockTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@form",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCommissionsResource;\n\nclass MyCommissionsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCommissionsResource@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCommissionsResource@form is PROOF_READY but no test file at tests/Unit/MyCommissionsResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCommissionsResource;\n\nclass MyCommissionsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmodellabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCommissionsResource@getModelLabel is PROOF_READY but no test file at tests/Unit/MyCommissionsResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCommissionsResource;\n\nclass MyCommissionsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getnavigationlabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCommissionsResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/MyCommissionsResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCommissionsResource;\n\nclass MyCommissionsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPages is PROOF_READY but no test file at tests/Unit/MyCommissionsResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCommissionsResource;\n\nclass MyCommissionsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpluralmodellabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCommissionsResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/MyCommissionsResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::getRelations",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@getRelations",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCommissionsResource;\n\nclass MyCommissionsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCommissionsResource@getRelations\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelations_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCommissionsResource@getRelations is PROOF_READY but no test file at tests/Unit/MyCommissionsResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCommissionsResource.php::App\\Domains\\Sales\\Resources\\MyCommissionsResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCommissionsResource@table",
        "expected_test_path": "tests/Unit/MyCommissionsResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCommissionsResource;\n\nclass MyCommissionsResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCommissionsResource@table\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_table_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCommissionsResource@table is PROOF_READY but no test file at tests/Unit/MyCommissionsResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::form",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@form",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCompaniesResource;\n\nclass MyCompaniesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCompaniesResource@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCompaniesResource@form is PROOF_READY but no test file at tests/Unit/MyCompaniesResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getModelLabel",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCompaniesResource;\n\nclass MyCompaniesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCompaniesResource@getModelLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmodellabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCompaniesResource@getModelLabel is PROOF_READY but no test file at tests/Unit/MyCompaniesResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getNavigationLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCompaniesResource;\n\nclass MyCompaniesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCompaniesResource@getNavigationLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getnavigationlabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCompaniesResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/MyCompaniesResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getPages",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPages",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCompaniesResource;\n\nclass MyCompaniesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPages is PROOF_READY but no test file at tests/Unit/MyCompaniesResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCompaniesResource;\n\nclass MyCompaniesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPluralModelLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpluralmodellabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCompaniesResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/MyCompaniesResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::getRelations",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@getRelations",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCompaniesResource;\n\nclass MyCompaniesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCompaniesResource@getRelations\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelations_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCompaniesResource@getRelations is PROOF_READY but no test file at tests/Unit/MyCompaniesResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/Sales/Resources/MyCompaniesResource.php::App\\Domains\\Sales\\Resources\\MyCompaniesResource::table",
        "fqmn": "App\\Domains\\Sales\\Resources\\MyCompaniesResource@table",
        "expected_test_path": "tests/Unit/MyCompaniesResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\Sales\\Resources\\MyCompaniesResource;\n\nclass MyCompaniesResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\Sales\\Resources\\MyCompaniesResource@table\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_table_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\Sales\\Resources\\MyCompaniesResource@table is PROOF_READY but no test file at tests/Unit/MyCompaniesResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form",
        "expected_test_path": "tests/Unit/BillingEventLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource;\n\nclass BillingEventLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@form is PROOF_READY but no test file at tests/Unit/BillingEventLogResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/BillingEventLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource;\n\nclass BillingEventLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getEloquentQuery\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_geteloquentquery_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/BillingEventLogResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages",
        "expected_test_path": "tests/Unit/BillingEventLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource;\n\nclass BillingEventLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@getPages is PROOF_READY but no test file at tests/Unit/BillingEventLogResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/BillingEventLogResource.php::App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table",
        "expected_test_path": "tests/Unit/BillingEventLogResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource;\n\nclass BillingEventLogResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_table_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\BillingEventLogResource@table is PROOF_READY but no test file at tests/Unit/BillingEventLogResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource;\n\nclass NotificationFailureResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancreate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canCreate is PROOF_READY but no test file at tests/Unit/NotificationFailureResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource;\n\nclass NotificationFailureResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canviewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@canViewAny is PROOF_READY but no test file at tests/Unit/NotificationFailureResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@form",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource;\n\nclass NotificationFailureResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@form is PROOF_READY but no test file at tests/Unit/NotificationFailureResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource;\n\nclass NotificationFailureResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_geteloquentquery_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/NotificationFailureResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getPages",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource;\n\nclass NotificationFailureResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@getPages is PROOF_READY but no test file at tests/Unit/NotificationFailureResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource;\n\nclass NotificationFailureResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@shouldRegisterNavigation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldregisternavigation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/NotificationFailureResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@table",
        "expected_test_path": "tests/Unit/NotificationFailureResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource;\n\nclass NotificationFailureResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@table\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_table_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource@table is PROOF_READY but no test file at tests/Unit/NotificationFailureResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/NotificationFailureResource/Pages/ViewNotificationFailure.php::App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure@infolist",
        "expected_test_path": "tests/Unit/ViewNotificationFailureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure;\n\nclass ViewNotificationFailureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure@infolist\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_infolist_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\NotificationFailureResource\\Pages\\ViewNotificationFailure@infolist is PROOF_READY but no test file at tests/Unit/ViewNotificationFailureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@form",
        "expected_test_path": "tests/Unit/OtoTopupResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource;\n\nclass OtoTopupResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@form is PROOF_READY but no test file at tests/Unit/OtoTopupResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::getEloquentQuery",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getEloquentQuery",
        "expected_test_path": "tests/Unit/OtoTopupResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource;\n\nclass OtoTopupResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getEloquentQuery\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_geteloquentquery_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getEloquentQuery is PROOF_READY but no test file at tests/Unit/OtoTopupResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getPages",
        "expected_test_path": "tests/Unit/OtoTopupResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource;\n\nclass OtoTopupResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@getPages is PROOF_READY but no test file at tests/Unit/OtoTopupResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/OtoTopupResource.php::App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@table",
        "expected_test_path": "tests/Unit/OtoTopupResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource;\n\nclass OtoTopupResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@table\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_table_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\OtoTopupResource@table is PROOF_READY but no test file at tests/Unit/OtoTopupResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canCreate",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canCreate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancreate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canCreate is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_candelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDelete is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDeleteAny",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDeleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_candeleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canDeleteAny is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canViewAny",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canViewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canviewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@canViewAny is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@form",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@form is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@getPages",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@getPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@getPages is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_infolist_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@infolist is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@shouldRegisterNavigation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldregisternavigation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/PendingInvariantPatchResource.php::App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@table",
        "expected_test_path": "tests/Unit/PendingInvariantPatchResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource;\n\nclass PendingInvariantPatchResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@table\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_table_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\PendingInvariantPatchResource@table is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@form",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource;\n\nclass SalesCommissionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@form is PROOF_READY but no test file at tests/Unit/SalesCommissionResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource;\n\nclass SalesCommissionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmodellabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getModelLabel is PROOF_READY but no test file at tests/Unit/SalesCommissionResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getNavigationLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource;\n\nclass SalesCommissionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getnavigationlabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getNavigationLabel is PROOF_READY but no test file at tests/Unit/SalesCommissionResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource;\n\nclass SalesCommissionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPages is PROOF_READY but no test file at tests/Unit/SalesCommissionResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getPluralModelLabel",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource;\n\nclass SalesCommissionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpluralmodellabel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getPluralModelLabel is PROOF_READY but no test file at tests/Unit/SalesCommissionResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::getRelations",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getRelations",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource;\n\nclass SalesCommissionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getRelations\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrelations_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@getRelations is PROOF_READY but no test file at tests/Unit/SalesCommissionResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource;\n\nclass SalesCommissionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldregisternavigation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/SalesCommissionResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/SalesCommissionResource.php::App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@table",
        "expected_test_path": "tests/Unit/SalesCommissionResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource;\n\nclass SalesCommissionResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@table\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_table_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\SalesCommissionResource@table is PROOF_READY but no test file at tests/Unit/SalesCommissionResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canCreate",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canCreate",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canCreate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancreate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canCreate is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canDelete",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDelete",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_candelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDelete is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canDeleteAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDeleteAny",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDeleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_candeleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canDeleteAny is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::canViewAny",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canViewAny",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canViewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canviewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@canViewAny is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::form",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@form",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@form is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::getPages",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@getPages",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@getPages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@getPages is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::infolist",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@infolist",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@infolist\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_infolist_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@infolist is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::shouldRegisterNavigation",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@shouldRegisterNavigation",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@shouldRegisterNavigation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldregisternavigation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@shouldRegisterNavigation is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Doma",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Domains/SuperAdmin/Resources/ZohoSideEditResource.php::App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource::table",
        "fqmn": "App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@table",
        "expected_test_path": "tests/Unit/ZohoSideEditResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource;\n\nclass ZohoSideEditResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@table\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_table_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Domains\\SuperAdmin\\Resources\\ZohoSideEditResource@table is PROOF_READY but no test file at tests/Unit/ZohoSideEditResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Account/MembershipStatusController.php::App\\Http\\Controllers\\Account\\MembershipStatusController::hasActiveMembership",
        "fqmn": "App\\Http\\Controllers\\Account\\MembershipStatusController@hasActiveMembership",
        "expected_test_path": "tests/Feature/MembershipStatusControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Account\\MembershipStatusController;\n\nclass MembershipStatusControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Account\\MembershipStatusController@hasActiveMembership\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasactivemembership_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Account\\MembershipStatusController@hasActiveMembership is PROOF_READY but no test file at tests/Feature/MembershipStatusControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Account/MembershipStatusController.php::App\\Http\\Controllers\\Account\\MembershipStatusController::show",
        "fqmn": "App\\Http\\Controllers\\Account\\MembershipStatusController@show",
        "expected_test_path": "tests/Feature/MembershipStatusControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Account\\MembershipStatusController;\n\nclass MembershipStatusControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Account\\MembershipStatusController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Account\\MembershipStatusController@show is PROOF_READY but no test file at tests/Feature/MembershipStatusControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::forgotPassword",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@forgotPassword",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AuthController@forgotPassword\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forgotpassword_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AuthController@forgotPassword is PROOF_READY but no test file at tests/Feature/AuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::login",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@login",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AuthController@login\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_login_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AuthController@login is PROOF_READY but no test file at tests/Feature/AuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@logout",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AuthController@logout\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logout_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AuthController@logout is PROOF_READY but no test file at tests/Feature/AuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::register",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@register",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AuthController@register\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_register_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AuthController@register is PROOF_READY but no test file at tests/Feature/AuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::resendVerification",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@resendVerification",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AuthController@resendVerification\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resendverification_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AuthController@resendVerification is PROOF_READY but no test file at tests/Feature/AuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::resetPassword",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@resetPassword",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AuthController@resetPassword\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resetpassword_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AuthController@resetPassword is PROOF_READY but no test file at tests/Feature/AuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AuthController.php::App\\Http\\Controllers\\Api\\AuthController::user",
        "fqmn": "App\\Http\\Controllers\\Api\\AuthController@user",
        "expected_test_path": "tests/Feature/AuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AuthController;\n\nclass AuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AuthController@user\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_user_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AuthController@user is PROOF_READY but no test file at tests/Feature/AuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::activate",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@activate",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AutomationController;\n\nclass AutomationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AutomationController@activate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_activate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AutomationController@activate is PROOF_READY but no test file at tests/Feature/AutomationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::audits",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@audits",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AutomationController;\n\nclass AutomationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AutomationController@audits\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_audits_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AutomationController@audits is PROOF_READY but no test file at tests/Feature/AutomationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::pause",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@pause",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AutomationController;\n\nclass AutomationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AutomationController@pause\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pause_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AutomationController@pause is PROOF_READY but no test file at tests/Feature/AutomationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::runs",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@runs",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AutomationController;\n\nclass AutomationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AutomationController@runs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_runs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AutomationController@runs is PROOF_READY but no test file at tests/Feature/AutomationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@store",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AutomationController;\n\nclass AutomationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AutomationController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AutomationController@store is PROOF_READY but no test file at tests/Feature/AutomationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/AutomationController.php::App\\Http\\Controllers\\Api\\AutomationController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\AutomationController@update",
        "expected_test_path": "tests/Feature/AutomationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\AutomationController;\n\nclass AutomationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\AutomationController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\AutomationController@update is PROOF_READY but no test file at tests/Feature/AutomationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BackorderController.php::App\\Http\\Controllers\\Api\\BackorderController::cancel",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderController@cancel",
        "expected_test_path": "tests/Feature/BackorderControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BackorderController;\n\nclass BackorderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BackorderController@cancel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancel_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BackorderController@cancel is PROOF_READY but no test file at tests/Feature/BackorderControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BackorderEscalationController.php::App\\Http\\Controllers\\Api\\BackorderEscalationController::contactSupplier",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderEscalationController@contactSupplier",
        "expected_test_path": "tests/Feature/BackorderEscalationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BackorderEscalationController;\n\nclass BackorderEscalationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BackorderEscalationController@contactSupplier\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_contactsupplier_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BackorderEscalationController@contactSupplier is PROOF_READY but no test file at tests/Feature/BackorderEscalationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BackorderEscalationController.php::App\\Http\\Controllers\\Api\\BackorderEscalationController::escalate",
        "fqmn": "App\\Http\\Controllers\\Api\\BackorderEscalationController@escalate",
        "expected_test_path": "tests/Feature/BackorderEscalationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BackorderEscalationController;\n\nclass BackorderEscalationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BackorderEscalationController@escalate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_escalate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BackorderEscalationController@escalate is PROOF_READY but no test file at tests/Feature/BackorderEscalationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BackupController.php::App\\Http\\Controllers\\Api\\BackupController::run",
        "fqmn": "App\\Http\\Controllers\\Api\\BackupController@run",
        "expected_test_path": "tests/Feature/BackupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BackupController;\n\nclass BackupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BackupController@run\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_run_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BackupController@run is PROOF_READY but no test file at tests/Feature/BackupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::available",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@available",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@available\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_available_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@available is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::companyStats",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@companyStats",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@companyStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_companystats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@companyStats is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@destroy",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@destroy is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::grant",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@grant",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@grant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_grant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@grant is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@index",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@index is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@show",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@show is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::stats",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@stats",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@stats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_stats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@stats is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@store",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@store is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeController.php::App\\Http\\Controllers\\Api\\BadgeController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeController@update",
        "expected_test_path": "tests/Feature/BadgeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeController;\n\nclass BadgeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeController@update is PROOF_READY but no test file at tests/Feature/BadgeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@destroy",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeTargetController;\n\nclass BadgeTargetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeTargetController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeTargetController@destroy is PROOF_READY but no test file at tests/Feature/BadgeTargetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@index",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeTargetController;\n\nclass BadgeTargetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeTargetController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeTargetController@index is PROOF_READY but no test file at tests/Feature/BadgeTargetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::myTargets",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@myTargets",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeTargetController;\n\nclass BadgeTargetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeTargetController@myTargets\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_mytargets_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeTargetController@myTargets is PROOF_READY but no test file at tests/Feature/BadgeTargetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@show",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeTargetController;\n\nclass BadgeTargetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeTargetController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeTargetController@show is PROOF_READY but no test file at tests/Feature/BadgeTargetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@store",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeTargetController;\n\nclass BadgeTargetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeTargetController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeTargetController@store is PROOF_READY but no test file at tests/Feature/BadgeTargetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/BadgeTargetController.php::App\\Http\\Controllers\\Api\\BadgeTargetController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\BadgeTargetController@update",
        "expected_test_path": "tests/Feature/BadgeTargetControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\BadgeTargetController;\n\nclass BadgeTargetControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\BadgeTargetController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\BadgeTargetController@update is PROOF_READY but no test file at tests/Feature/BadgeTargetControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/CartValidationController.php::App\\Http\\Controllers\\Api\\CartValidationController::check",
        "fqmn": "App\\Http\\Controllers\\Api\\CartValidationController@check",
        "expected_test_path": "tests/Feature/CartValidationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\CartValidationController;\n\nclass CartValidationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\CartValidationController@check\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_check_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\CartValidationController@check is PROOF_READY but no test file at tests/Feature/CartValidationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/CompanyController.php::App\\Http\\Controllers\\Api\\CompanyController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@show",
        "expected_test_path": "tests/Feature/CompanyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\CompanyController;\n\nclass CompanyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\CompanyController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\CompanyController@show is PROOF_READY but no test file at tests/Feature/CompanyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/CompanyController.php::App\\Http\\Controllers\\Api\\CompanyController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyController@update",
        "expected_test_path": "tests/Feature/CompanyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\CompanyController;\n\nclass CompanyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\CompanyController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\CompanyController@update is PROOF_READY but no test file at tests/Feature/CompanyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::departments",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments",
        "expected_test_path": "tests/Feature/CompanyDirectoryControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\CompanyDirectoryController;\n\nclass CompanyDirectoryControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_departments_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\CompanyDirectoryController@departments is PROOF_READY but no test file at tests/Feature/CompanyDirectoryControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::teams",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@teams",
        "expected_test_path": "tests/Feature/CompanyDirectoryControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\CompanyDirectoryController;\n\nclass CompanyDirectoryControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\CompanyDirectoryController@teams\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_teams_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\CompanyDirectoryController@teams is PROOF_READY but no test file at tests/Feature/CompanyDirectoryControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/CompanyDirectoryController.php::App\\Http\\Controllers\\Api\\CompanyDirectoryController::users",
        "fqmn": "App\\Http\\Controllers\\Api\\CompanyDirectoryController@users",
        "expected_test_path": "tests/Feature/CompanyDirectoryControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\CompanyDirectoryController;\n\nclass CompanyDirectoryControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\CompanyDirectoryController@users\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_users_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\CompanyDirectoryController@users is PROOF_READY but no test file at tests/Feature/CompanyDirectoryControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ConfigController.php::App\\Http\\Controllers\\Api\\ConfigController::config",
        "fqmn": "App\\Http\\Controllers\\Api\\ConfigController@config",
        "expected_test_path": "tests/Feature/ConfigControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ConfigController;\n\nclass ConfigControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ConfigController@config\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_config_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ConfigController@config is PROOF_READY but no test file at tests/Feature/ConfigControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DeliveryController.php::App\\Http\\Controllers\\Api\\DeliveryController::getStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\DeliveryController@getStatus",
        "expected_test_path": "tests/Feature/DeliveryControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DeliveryController;\n\nclass DeliveryControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DeliveryController@getStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getstatus_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DeliveryController@getStatus is PROOF_READY but no test file at tests/Feature/DeliveryControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@destroy",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DepartmentController;\n\nclass DepartmentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DepartmentController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DepartmentController@destroy is PROOF_READY but no test file at tests/Feature/DepartmentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@index",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DepartmentController;\n\nclass DepartmentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DepartmentController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DepartmentController@index is PROOF_READY but no test file at tests/Feature/DepartmentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@show",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DepartmentController;\n\nclass DepartmentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DepartmentController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DepartmentController@show is PROOF_READY but no test file at tests/Feature/DepartmentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@store",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DepartmentController;\n\nclass DepartmentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DepartmentController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DepartmentController@store is PROOF_READY but no test file at tests/Feature/DepartmentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DepartmentController.php::App\\Http\\Controllers\\Api\\DepartmentController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\DepartmentController@update",
        "expected_test_path": "tests/Feature/DepartmentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DepartmentController;\n\nclass DepartmentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DepartmentController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DepartmentController@update is PROOF_READY but no test file at tests/Feature/DepartmentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@approve",
        "expected_test_path": "tests/Feature/DigestControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DigestController;\n\nclass DigestControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DigestController@approve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_approve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DigestController@approve is PROOF_READY but no test file at tests/Feature/DigestControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::batchApprove",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@batchApprove",
        "expected_test_path": "tests/Feature/DigestControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DigestController;\n\nclass DigestControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DigestController@batchApprove\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_batchapprove_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DigestController@batchApprove is PROOF_READY but no test file at tests/Feature/DigestControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::feedback",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@feedback",
        "expected_test_path": "tests/Feature/DigestControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DigestController;\n\nclass DigestControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DigestController@feedback\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_feedback_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DigestController@feedback is PROOF_READY but no test file at tests/Feature/DigestControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DigestController.php::App\\Http\\Controllers\\Api\\DigestController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\DigestController@reject",
        "expected_test_path": "tests/Feature/DigestControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DigestController;\n\nclass DigestControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DigestController@reject\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reject_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DigestController@reject is PROOF_READY but no test file at tests/Feature/DigestControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::confirmType",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@confirmType",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentController;\n\nclass DocumentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentController@confirmType\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_confirmtype_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentController@confirmType is PROOF_READY but no test file at tests/Feature/DocumentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::download",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@download",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentController;\n\nclass DocumentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentController@download\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_download_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentController@download is PROOF_READY but no test file at tests/Feature/DocumentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::getClassification",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@getClassification",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentController;\n\nclass DocumentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentController@getClassification\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getclassification_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentController@getClassification is PROOF_READY but no test file at tests/Feature/DocumentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@index",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentController;\n\nclass DocumentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentController@index is PROOF_READY but no test file at tests/Feature/DocumentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@show",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentController;\n\nclass DocumentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentController@show is PROOF_READY but no test file at tests/Feature/DocumentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentController.php::App\\Http\\Controllers\\Api\\DocumentController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentController@store",
        "expected_test_path": "tests/Feature/DocumentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentController;\n\nclass DocumentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentController@store is PROOF_READY but no test file at tests/Feature/DocumentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::canPerformAction",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@canPerformAction",
        "expected_test_path": "tests/Feature/DocumentShareControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentShareController;\n\nclass DocumentShareControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentShareController@canPerformAction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canperformaction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentShareController@canPerformAction is PROOF_READY but no test file at tests/Feature/DocumentShareControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@destroy",
        "expected_test_path": "tests/Feature/DocumentShareControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentShareController;\n\nclass DocumentShareControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentShareController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentShareController@destroy is PROOF_READY but no test file at tests/Feature/DocumentShareControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@index",
        "expected_test_path": "tests/Feature/DocumentShareControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentShareController;\n\nclass DocumentShareControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentShareController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentShareController@index is PROOF_READY but no test file at tests/Feature/DocumentShareControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentShareController.php::App\\Http\\Controllers\\Api\\DocumentShareController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentShareController@store",
        "expected_test_path": "tests/Feature/DocumentShareControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentShareController;\n\nclass DocumentShareControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentShareController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentShareController@store is PROOF_READY but no test file at tests/Feature/DocumentShareControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::diff",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@diff",
        "expected_test_path": "tests/Feature/DocumentVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentVersionController;\n\nclass DocumentVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentVersionController@diff\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_diff_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentVersionController@diff is PROOF_READY but no test file at tests/Feature/DocumentVersionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@index",
        "expected_test_path": "tests/Feature/DocumentVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentVersionController;\n\nclass DocumentVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentVersionController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentVersionController@index is PROOF_READY but no test file at tests/Feature/DocumentVersionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@show",
        "expected_test_path": "tests/Feature/DocumentVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentVersionController;\n\nclass DocumentVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentVersionController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentVersionController@show is PROOF_READY but no test file at tests/Feature/DocumentVersionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/DocumentVersionController.php::App\\Http\\Controllers\\Api\\DocumentVersionController::updateField",
        "fqmn": "App\\Http\\Controllers\\Api\\DocumentVersionController@updateField",
        "expected_test_path": "tests/Feature/DocumentVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\DocumentVersionController;\n\nclass DocumentVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\DocumentVersionController@updateField\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updatefield_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\DocumentVersionController@updateField is PROOF_READY but no test file at tests/Feature/DocumentVersionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@destroy",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EmailTemplateController;\n\nclass EmailTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EmailTemplateController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EmailTemplateController@destroy is PROOF_READY but no test file at tests/Feature/EmailTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::getPlaceholders",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@getPlaceholders",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EmailTemplateController;\n\nclass EmailTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EmailTemplateController@getPlaceholders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getplaceholders_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EmailTemplateController@getPlaceholders is PROOF_READY but no test file at tests/Feature/EmailTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@index",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EmailTemplateController;\n\nclass EmailTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EmailTemplateController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EmailTemplateController@index is PROOF_READY but no test file at tests/Feature/EmailTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::preview",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@preview",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EmailTemplateController;\n\nclass EmailTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EmailTemplateController@preview\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_preview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EmailTemplateController@preview is PROOF_READY but no test file at tests/Feature/EmailTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@show",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EmailTemplateController;\n\nclass EmailTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EmailTemplateController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EmailTemplateController@show is PROOF_READY but no test file at tests/Feature/EmailTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@store",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EmailTemplateController;\n\nclass EmailTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EmailTemplateController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EmailTemplateController@store is PROOF_READY but no test file at tests/Feature/EmailTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::testSend",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@testSend",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EmailTemplateController;\n\nclass EmailTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EmailTemplateController@testSend\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_testsend_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EmailTemplateController@testSend is PROOF_READY but no test file at tests/Feature/EmailTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EmailTemplateController.php::App\\Http\\Controllers\\Api\\EmailTemplateController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\EmailTemplateController@update",
        "expected_test_path": "tests/Feature/EmailTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EmailTemplateController;\n\nclass EmailTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EmailTemplateController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EmailTemplateController@update is PROOF_READY but no test file at tests/Feature/EmailTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Employer/BillingSnapshotController.php::App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController@show",
        "expected_test_path": "tests/Feature/BillingSnapshotControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController;\n\nclass BillingSnapshotControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Employer\\BillingSnapshotController@show is PROOF_READY but no test file at tests/Feature/BillingSnapshotControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/EntitlementsController.php::App\\Http\\Controllers\\Api\\EntitlementsController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\EntitlementsController@show",
        "expected_test_path": "tests/Feature/EntitlementsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\EntitlementsController;\n\nclass EntitlementsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\EntitlementsController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\EntitlementsController@show is PROOF_READY but no test file at tests/Feature/EntitlementsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/FeaturePreviewController.php::App\\Http\\Controllers\\Api\\FeaturePreviewController::start",
        "fqmn": "App\\Http\\Controllers\\Api\\FeaturePreviewController@start",
        "expected_test_path": "tests/Feature/FeaturePreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\FeaturePreviewController;\n\nclass FeaturePreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\FeaturePreviewController@start\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_start_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\FeaturePreviewController@start is PROOF_READY but no test file at tests/Feature/FeaturePreviewControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/HealthController.php::App\\Http\\Controllers\\Api\\HealthController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "expected_test_path": "tests/Feature/HealthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\HealthController;\n\nclass HealthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\HealthController@status\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_status_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\HealthController@status is PROOF_READY but no test file at tests/Feature/HealthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::dmTest",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@dmTest",
        "expected_test_path": "tests/Feature/HelpChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\HelpChatController;\n\nclass HelpChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\HelpChatController@dmTest\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dmtest_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\HelpChatController@dmTest is PROOF_READY but no test file at tests/Feature/HelpChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::health",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@health",
        "expected_test_path": "tests/Feature/HelpChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\HelpChatController;\n\nclass HelpChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\HelpChatController@health\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_health_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\HelpChatController@health is PROOF_READY but no test file at tests/Feature/HelpChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/HelpChatController.php::App\\Http\\Controllers\\Api\\HelpChatController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\HelpChatController@send",
        "expected_test_path": "tests/Feature/HelpChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\HelpChatController;\n\nclass HelpChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\HelpChatController@send\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_send_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\HelpChatController@send is PROOF_READY but no test file at tests/Feature/HelpChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::adminJobMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@adminJobMetrics",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@adminJobMetrics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_adminjobmetrics_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@adminJobMetrics is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::companyJobMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@companyJobMetrics",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@companyJobMetrics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_companyjobmetrics_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@companyJobMetrics is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::downloadReferralCv",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@downloadReferralCv",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@downloadReferralCv\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_downloadreferralcv_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@downloadReferralCv is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::getReferralInsights",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@getReferralInsights",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@getReferralInsights\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getreferralinsights_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@getReferralInsights is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listAllReferrals",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listAllReferrals",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@listAllReferrals\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_listallreferrals_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@listAllReferrals is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listCompanyReferrals",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_listcompanyreferrals_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@listCompanyReferrals is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::listJobs",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@listJobs",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@listJobs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_listjobs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@listJobs is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::storeJob",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@storeJob",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@storeJob\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_storejob_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@storeJob is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::storeReferral",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@storeReferral",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@storeReferral\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_storereferral_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@storeReferral is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::updateJob",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@updateJob",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@updateJob\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updatejob_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@updateJob is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/JobController.php::App\\Http\\Controllers\\Api\\JobController::updateReferralStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\JobController@updateReferralStatus",
        "expected_test_path": "tests/Feature/JobControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\JobController;\n\nclass JobControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\JobController@updateReferralStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updatereferralstatus_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\JobController@updateReferralStatus is PROOF_READY but no test file at tests/Feature/JobControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@destroy",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\KieTemplateController;\n\nclass KieTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\KieTemplateController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\KieTemplateController@destroy is PROOF_READY but no test file at tests/Feature/KieTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@index",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\KieTemplateController;\n\nclass KieTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\KieTemplateController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\KieTemplateController@index is PROOF_READY but no test file at tests/Feature/KieTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::resolve",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@resolve",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\KieTemplateController;\n\nclass KieTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\KieTemplateController@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\KieTemplateController@resolve is PROOF_READY but no test file at tests/Feature/KieTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@show",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\KieTemplateController;\n\nclass KieTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\KieTemplateController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\KieTemplateController@show is PROOF_READY but no test file at tests/Feature/KieTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@store",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\KieTemplateController;\n\nclass KieTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\KieTemplateController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\KieTemplateController@store is PROOF_READY but no test file at tests/Feature/KieTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/KieTemplateController.php::App\\Http\\Controllers\\Api\\KieTemplateController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\KieTemplateController@update",
        "expected_test_path": "tests/Feature/KieTemplateControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\KieTemplateController;\n\nclass KieTemplateControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\KieTemplateController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\KieTemplateController@update is PROOF_READY but no test file at tests/Feature/KieTemplateControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/LeaderboardController.php::App\\Http\\Controllers\\Api\\LeaderboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\LeaderboardController@index",
        "expected_test_path": "tests/Feature/LeaderboardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\LeaderboardController;\n\nclass LeaderboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\LeaderboardController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\LeaderboardController@index is PROOF_READY but no test file at tests/Feature/LeaderboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/LinkPreviewController.php::App\\Http\\Controllers\\Api\\LinkPreviewController::fetch",
        "fqmn": "App\\Http\\Controllers\\Api\\LinkPreviewController@fetch",
        "expected_test_path": "tests/Feature/LinkPreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\LinkPreviewController;\n\nclass LinkPreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\LinkPreviewController@fetch\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fetch_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\LinkPreviewController@fetch is PROOF_READY but no test file at tests/Feature/LinkPreviewControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/IntegrityController.php::App\\Http\\Controllers\\Api\\Mobile\\IntegrityController::verify",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\IntegrityController@verify",
        "expected_test_path": "tests/Feature/IntegrityControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\IntegrityController;\n\nclass IntegrityControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\IntegrityController@verify\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_verify_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\IntegrityController@verify is PROOF_READY but no test file at tests/Feature/IntegrityControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::completeOnboarding",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@completeOnboarding",
        "expected_test_path": "tests/Feature/MobileAuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController;\n\nclass MobileAuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@completeOnboarding\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_completeonboarding_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@completeOnboarding is PROOF_READY but no test file at tests/Feature/MobileAuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::login",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@login",
        "expected_test_path": "tests/Feature/MobileAuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController;\n\nclass MobileAuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@login\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_login_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@login is PROOF_READY but no test file at tests/Feature/MobileAuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::logout",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@logout",
        "expected_test_path": "tests/Feature/MobileAuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController;\n\nclass MobileAuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@logout\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logout_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@logout is PROOF_READY but no test file at tests/Feature/MobileAuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileAuthController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController::me",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@me",
        "expected_test_path": "tests/Feature/MobileAuthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController;\n\nclass MobileAuthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@me\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_me_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileAuthController@me is PROOF_READY but no test file at tests/Feature/MobileAuthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@index",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@index is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::init",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@init",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@init\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_init_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@init is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markAllAsRead",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markAllAsRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markallasread_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markAllAsRead is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::markThreadRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markthreadread_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@markThreadRead is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::muteThread",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@muteThread",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@muteThread\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_mutethread_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@muteThread is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::react",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@react",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@react\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_react_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@react is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::read",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@read",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@read\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_read_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@read is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@show",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@show is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showAttachment",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showAttachment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showattachment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showAttachment is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showGroup",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroup",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showgroup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroup is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::showGroupMessages",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroupMessages",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroupMessages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showgroupmessages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@showGroupMessages is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@store",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@store is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::thread",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@thread",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@thread\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_thread_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@thread is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::threadMetrics",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@threadMetrics",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@threadMetrics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_threadmetrics_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@threadMetrics is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileChatController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileChatController::users",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@users",
        "expected_test_path": "tests/Feature/MobileChatControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileChatController;\n\nclass MobileChatControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@users\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_users_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileChatController@users is PROOF_READY but no test file at tests/Feature/MobileChatControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileConfigController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController::version",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController@version",
        "expected_test_path": "tests/Feature/MobileConfigControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController;\n\nclass MobileConfigControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController@version\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_version_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileConfigController@version is PROOF_READY but no test file at tests/Feature/MobileConfigControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileDeviceController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy",
        "expected_test_path": "tests/Feature/MobileDeviceControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController;\n\nclass MobileDeviceControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@destroy is PROOF_READY but no test file at tests/Feature/MobileDeviceControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileDeviceController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@store",
        "expected_test_path": "tests/Feature/MobileDeviceControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController;\n\nclass MobileDeviceControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileDeviceController@store is PROOF_READY but no test file at tests/Feature/MobileDeviceControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLeaderboardController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController@index",
        "expected_test_path": "tests/Feature/MobileLeaderboardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController;\n\nclass MobileLeaderboardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileLeaderboardController@index is PROOF_READY but no test file at tests/Feature/MobileLeaderboardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLogController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLogController::batch",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch",
        "expected_test_path": "tests/Feature/MobileLogControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileLogController;\n\nclass MobileLogControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_batch_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@batch is PROOF_READY but no test file at tests/Feature/MobileLogControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileLogController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileLogController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@store",
        "expected_test_path": "tests/Feature/MobileLogControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileLogController;\n\nclass MobileLogControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileLogController@store is PROOF_READY but no test file at tests/Feature/MobileLogControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileMapsController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController::static",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController@static",
        "expected_test_path": "tests/Feature/MobileMapsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written",
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController;\n\nclass MobileMapsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController@static\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_static_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileMapsController@static is PROOF_READY but no test file at tests/Feature/MobileMapsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@index",
        "expected_test_path": "tests/Feature/MobileNotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController;\n\nclass MobileNotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@index is PROOF_READY but no test file at tests/Feature/MobileNotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead",
        "expected_test_path": "tests/Feature/MobileNotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController;\n\nclass MobileNotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markallasread_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAllAsRead is PROOF_READY but no test file at tests/Feature/MobileNotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileNotificationController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAsRead",
        "expected_test_path": "tests/Feature/MobileNotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController;\n\nclass MobileNotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAsRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markasread_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileNotificationController@markAsRead is PROOF_READY but no test file at tests/Feature/MobileNotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileProfileController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController::changePassword",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@changePassword",
        "expected_test_path": "tests/Feature/MobileProfileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController;\n\nclass MobileProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@changePassword\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_changepassword_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@changePassword is PROOF_READY but no test file at tests/Feature/MobileProfileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileProfileController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@update",
        "expected_test_path": "tests/Feature/MobileProfileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController;\n\nclass MobileProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileProfileController@update is PROOF_READY but no test file at tests/Feature/MobileProfileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@index",
        "expected_test_path": "tests/Feature/MobileRecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController;\n\nclass MobileRecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@index is PROOF_READY but no test file at tests/Feature/MobileRecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@store",
        "expected_test_path": "tests/Feature/MobileRecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController;\n\nclass MobileRecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@store is PROOF_READY but no test file at tests/Feature/MobileRecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRecognitionController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController::values",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@values",
        "expected_test_path": "tests/Feature/MobileRecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController;\n\nclass MobileRecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@values\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_values_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileRecognitionController@values is PROOF_READY but no test file at tests/Feature/MobileRecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRefreshmentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController::presets",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets",
        "expected_test_path": "tests/Feature/MobileRefreshmentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController;\n\nclass MobileRefreshmentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_presets_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@presets is PROOF_READY but no test file at tests/Feature/MobileRefreshmentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileRefreshmentController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController::request",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@request",
        "expected_test_path": "tests/Feature/MobileRefreshmentControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController;\n\nclass MobileRefreshmentControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@request\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_request_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileRefreshmentController@request is PROOF_READY but no test file at tests/Feature/MobileRefreshmentControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::invoices",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@invoices",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController;\n\nclass MobileSupplierControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@invoices\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_invoices_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@invoices is PROOF_READY but no test file at tests/Feature/MobileSupplierControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::markReady",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@markReady",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController;\n\nclass MobileSupplierControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@markReady\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markready_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@markReady is PROOF_READY but no test file at tests/Feature/MobileSupplierControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::orders",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@orders",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController;\n\nclass MobileSupplierControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@orders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_orders_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@orders is PROOF_READY but no test file at tests/Feature/MobileSupplierControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::products",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@products",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController;\n\nclass MobileSupplierControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@products\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_products_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@products is PROOF_READY but no test file at tests/Feature/MobileSupplierControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileSupplierController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController::stats",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@stats",
        "expected_test_path": "tests/Feature/MobileSupplierControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController;\n\nclass MobileSupplierControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@stats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_stats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileSupplierController@stats is PROOF_READY but no test file at tests/Feature/MobileSupplierControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::accept",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController;\n\nclass MobileTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_accept_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@accept is PROOF_READY but no test file at tests/Feature/MobileTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@complete",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController;\n\nclass MobileTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@complete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_complete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@complete is PROOF_READY but no test file at tests/Feature/MobileTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@index",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController;\n\nclass MobileTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@index is PROOF_READY but no test file at tests/Feature/MobileTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@reject",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController;\n\nclass MobileTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@reject\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reject_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@reject is PROOF_READY but no test file at tests/Feature/MobileTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::requested",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@requested",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController;\n\nclass MobileTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@requested\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_requested_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@requested is PROOF_READY but no test file at tests/Feature/MobileTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileTaskController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@store",
        "expected_test_path": "tests/Feature/MobileTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController;\n\nclass MobileTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileTaskController@store is PROOF_READY but no test file at tests/Feature/MobileTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Mobile/MobileUserController.php::App\\Http\\Controllers\\Api\\Mobile\\MobileUserController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\Mobile\\MobileUserController@index",
        "expected_test_path": "tests/Feature/MobileUserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Mobile\\MobileUserController;\n\nclass MobileUserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Mobile\\MobileUserController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Mobile\\MobileUserController@index is PROOF_READY but no test file at tests/Feature/MobileUserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastAs",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastAs",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\NotificationController@broadcastAs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_broadcastas_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\NotificationController@broadcastAs is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastOn",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastOn",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\NotificationController@broadcastOn\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_broadcaston_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\NotificationController@broadcastOn is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::broadcastWith",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@broadcastWith",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\NotificationController@broadcastWith\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_broadcastwith_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\NotificationController@broadcastWith is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::count",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@count",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\NotificationController@count\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_count_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\NotificationController@count is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@index",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\NotificationController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\NotificationController@index is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@markAllAsRead",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\NotificationController@markAllAsRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markallasread_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\NotificationController@markAllAsRead is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/NotificationController.php::App\\Http\\Controllers\\Api\\NotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\Api\\NotificationController@markAsRead",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\NotificationController@markAsRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markasread_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\NotificationController@markAsRead is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/OcrAnalyticsController.php::App\\Http\\Controllers\\Api\\OcrAnalyticsController::kpis",
        "fqmn": "App\\Http\\Controllers\\Api\\OcrAnalyticsController@kpis",
        "expected_test_path": "tests/Feature/OcrAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\OcrAnalyticsController;\n\nclass OcrAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\OcrAnalyticsController@kpis\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_kpis_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\OcrAnalyticsController@kpis is PROOF_READY but no test file at tests/Feature/OcrAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/PlanVersionController.php::App\\Http\\Controllers\\Api\\PlanVersionController::features",
        "fqmn": "App\\Http\\Controllers\\Api\\PlanVersionController@features",
        "expected_test_path": "tests/Feature/PlanVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\PlanVersionController;\n\nclass PlanVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\PlanVersionController@features\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_features_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\PlanVersionController@features is PROOF_READY but no test file at tests/Feature/PlanVersionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/PlanVersionController.php::App\\Http\\Controllers\\Api\\PlanVersionController::publicVersions",
        "fqmn": "App\\Http\\Controllers\\Api\\PlanVersionController@publicVersions",
        "expected_test_path": "tests/Feature/PlanVersionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\PlanVersionController;\n\nclass PlanVersionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\PlanVersionController@publicVersions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_publicversions_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\PlanVersionController@publicVersions is PROOF_READY but no test file at tests/Feature/PlanVersionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/Properties/UnitController.php::App\\Http\\Controllers\\Api\\Properties\\UnitController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\Properties\\UnitController@store",
        "expected_test_path": "tests/Feature/UnitControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\Properties\\UnitController;\n\nclass UnitControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\Properties\\UnitController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\Properties\\UnitController@store is PROOF_READY but no test file at tests/Feature/UnitControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::companyCheck",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_companycheck_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::debugMigrate",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_debugmigrate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::fixCascadeBug",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fixcascadebug_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@index",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@index is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::kpiOkr",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@kpiOkr",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@kpiOkr\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_kpiokr_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@kpiOkr is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionAnalyticsController.php::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::recomputeCascades",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recomputecascades_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::addAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@addAttachment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@addAttachment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_addattachment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@addAttachment is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::addComment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@addComment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@addComment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_addcomment_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@addComment is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::deleteAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@deleteAttachment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@deleteAttachment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteattachment_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@deleteAttachment is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::deleteComment",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@deleteComment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@deleteComment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deletecomment_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@deleteComment is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@destroy",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@destroy is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::feed",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@feed",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@feed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_feed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@feed is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@index",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@index is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::listAttachments",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listAttachments",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@listAttachments\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_listattachments_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@listAttachments is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::listComments",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@listComments",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@listComments\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_listcomments_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@listComments is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::react",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@react",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@react\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_react_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@react is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@show",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@show is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@store",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@store is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::unreact",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@unreact",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@unreact\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unreact_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@unreact is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionController.php::App\\Http\\Controllers\\Api\\RecognitionController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionController@update",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionController@update is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionExportController.php::App\\Http\\Controllers\\Api\\RecognitionExportController::csv",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionExportController@csv",
        "expected_test_path": "tests/Feature/RecognitionExportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionExportController;\n\nclass RecognitionExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionExportController@csv\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_csv_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionExportController@csv is PROOF_READY but no test file at tests/Feature/RecognitionExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RecognitionKpiExportController.php::App\\Http\\Controllers\\Api\\RecognitionKpiExportController::export",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionKpiExportController@export",
        "expected_test_path": "tests/Feature/RecognitionKpiExportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionKpiExportController;\n\nclass RecognitionKpiExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionKpiExportController@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionKpiExportController@export is PROOF_READY but no test file at tests/Feature/RecognitionKpiExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@destroy",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReferralController;\n\nclass ReferralControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReferralController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReferralController@destroy is PROOF_READY but no test file at tests/Feature/ReferralControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@index",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReferralController;\n\nclass ReferralControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReferralController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReferralController@index is PROOF_READY but no test file at tests/Feature/ReferralControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@show",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReferralController;\n\nclass ReferralControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReferralController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReferralController@show is PROOF_READY but no test file at tests/Feature/ReferralControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@store",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReferralController;\n\nclass ReferralControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReferralController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReferralController@store is PROOF_READY but no test file at tests/Feature/ReferralControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReferralController.php::App\\Http\\Controllers\\Api\\ReferralController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ReferralController@update",
        "expected_test_path": "tests/Feature/ReferralControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReferralController;\n\nclass ReferralControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReferralController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReferralController@update is PROOF_READY but no test file at tests/Feature/ReferralControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@destroy",
        "expected_test_path": "tests/Feature/ReminderControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReminderController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReminderController@destroy is PROOF_READY but no test file at tests/Feature/ReminderControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@index",
        "expected_test_path": "tests/Feature/ReminderControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReminderController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReminderController@index is PROOF_READY but no test file at tests/Feature/ReminderControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@store",
        "expected_test_path": "tests/Feature/ReminderControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReminderController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReminderController@store is PROOF_READY but no test file at tests/Feature/ReminderControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ReminderController.php::App\\Http\\Controllers\\Api\\ReminderController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ReminderController@update",
        "expected_test_path": "tests/Feature/ReminderControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ReminderController;\n\nclass ReminderControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ReminderController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ReminderController@update is PROOF_READY but no test file at tests/Feature/ReminderControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@destroy",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RewardController;\n\nclass RewardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RewardController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RewardController@destroy is PROOF_READY but no test file at tests/Feature/RewardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@index",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RewardController;\n\nclass RewardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RewardController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RewardController@index is PROOF_READY but no test file at tests/Feature/RewardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::redeem",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@redeem",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RewardController;\n\nclass RewardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RewardController@redeem\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_redeem_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RewardController@redeem is PROOF_READY but no test file at tests/Feature/RewardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@show",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RewardController;\n\nclass RewardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RewardController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RewardController@show is PROOF_READY but no test file at tests/Feature/RewardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@store",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RewardController;\n\nclass RewardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RewardController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RewardController@store is PROOF_READY but no test file at tests/Feature/RewardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/RewardController.php::App\\Http\\Controllers\\Api\\RewardController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\RewardController@update",
        "expected_test_path": "tests/Feature/RewardControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RewardController;\n\nclass RewardControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RewardController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RewardController@update is PROOF_READY but no test file at tests/Feature/RewardControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SettingsController.php::App\\Http\\Controllers\\Api\\SettingsController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@show",
        "expected_test_path": "tests/Feature/SettingsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SettingsController;\n\nclass SettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SettingsController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SettingsController@show is PROOF_READY but no test file at tests/Feature/SettingsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SettingsController.php::App\\Http\\Controllers\\Api\\SettingsController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\SettingsController@update",
        "expected_test_path": "tests/Feature/SettingsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SettingsController;\n\nclass SettingsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SettingsController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SettingsController@update is PROOF_READY but no test file at tests/Feature/SettingsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::kpi",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SetupController;\n\nclass SetupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SetupController@kpi\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_kpi_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SetupController@kpi is PROOF_READY but no test file at tests/Feature/SetupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::setup",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SetupController;\n\nclass SetupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SetupController@setup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SetupController@setup is PROOF_READY but no test file at tests/Feature/SetupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SetupController.php::App\\Http\\Controllers\\Api\\SetupController::test",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SetupController;\n\nclass SetupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SetupController@test\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_test_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SetupController@test is PROOF_READY but no test file at tests/Feature/SetupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/StorageProxyController.php::App\\Http\\Controllers\\Api\\StorageProxyController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\StorageProxyController@show",
        "expected_test_path": "tests/Feature/StorageProxyControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\StorageProxyController;\n\nclass StorageProxyControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\StorageProxyController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\StorageProxyController@show is PROOF_READY but no test file at tests/Feature/StorageProxyControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/StoreController.php::App\\Http\\Controllers\\Api\\StoreController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\StoreController@index",
        "expected_test_path": "tests/Feature/StoreControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\StoreController;\n\nclass StoreControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\StoreController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\StoreController@index is PROOF_READY but no test file at tests/Feature/StoreControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade",
        "expected_test_path": "tests/Feature/SubscriptionChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionChangeController;\n\nclass SubscriptionChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applydowngrade_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyDowngrade is PROOF_READY but no test file at tests/Feature/SubscriptionChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyUpgrade",
        "expected_test_path": "tests/Feature/SubscriptionChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionChangeController;\n\nclass SubscriptionChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyUpgrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applyupgrade_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionChangeController@applyUpgrade is PROOF_READY but no test file at tests/Feature/SubscriptionChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::previewDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade",
        "expected_test_path": "tests/Feature/SubscriptionChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionChangeController;\n\nclass SubscriptionChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_previewdowngrade_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewDowngrade is PROOF_READY but no test file at tests/Feature/SubscriptionChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionChangeController::previewUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewUpgrade",
        "expected_test_path": "tests/Feature/SubscriptionChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionChangeController;\n\nclass SubscriptionChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewUpgrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_previewupgrade_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionChangeController@previewUpgrade is PROOF_READY but no test file at tests/Feature/SubscriptionChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyDowngrade",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController;\n\nclass SubscriptionPlanChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyDowngrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applydowngrade_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyDowngrade is PROOF_READY but no test file at tests/Feature/SubscriptionPlanChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyUpgrade",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController;\n\nclass SubscriptionPlanChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyUpgrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applyupgrade_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@applyUpgrade is PROOF_READY but no test file at tests/Feature/SubscriptionPlanChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::downgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@downgrade",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController;\n\nclass SubscriptionPlanChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@downgrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_downgrade_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@downgrade is PROOF_READY but no test file at tests/Feature/SubscriptionPlanChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::listPublicPlanVersions",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@listPublicPlanVersions",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController;\n\nclass SubscriptionPlanChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@listPublicPlanVersions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_listpublicplanversions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@listPublicPlanVersions is PROOF_READY but no test file at tests/Feature/SubscriptionPlanChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionPlanChangeController.php::App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController::upgrade",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@upgrade",
        "expected_test_path": "tests/Feature/SubscriptionPlanChangeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController;\n\nclass SubscriptionPlanChangeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@upgrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_upgrade_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionPlanChangeController@upgrade is PROOF_READY but no test file at tests/Feature/SubscriptionPlanChangeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/SubscriptionStartController.php::App\\Http\\Controllers\\Api\\SubscriptionStartController::start",
        "fqmn": "App\\Http\\Controllers\\Api\\SubscriptionStartController@start",
        "expected_test_path": "tests/Feature/SubscriptionStartControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SubscriptionStartController;\n\nclass SubscriptionStartControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SubscriptionStartController@start\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_start_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SubscriptionStartController@start is PROOF_READY but no test file at tests/Feature/SubscriptionStartControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::addAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@addAttachment",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@addAttachment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_addattachment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@addAttachment is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::addWatcher",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@addWatcher",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@addWatcher\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_addwatcher_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@addWatcher is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@approve",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@approve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_approve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@approve is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::complete",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@complete",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@complete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_complete_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@complete is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::deleteAttachment",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@deleteAttachment",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@deleteAttachment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteattachment_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@deleteAttachment is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@destroy",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@destroy is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@index",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@index is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::listAttachments",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listAttachments",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@listAttachments\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_listattachments_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@listAttachments is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::listWatchers",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@listWatchers",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@listWatchers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_listwatchers_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@listWatchers is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@reject",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@reject\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reject_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@reject is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::removeWatcher",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@removeWatcher",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@removeWatcher\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_removewatcher_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@removeWatcher is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@show",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@show is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@status",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@status\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_status_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@status is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@store",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@store is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskController.php::App\\Http\\Controllers\\Api\\TaskController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskController@update",
        "expected_test_path": "tests/Feature/TaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskController;\n\nclass TaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskController@update is PROOF_READY but no test file at tests/Feature/TaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskMetricsController.php::App\\Http\\Controllers\\Api\\TaskMetricsController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskMetricsController@index",
        "expected_test_path": "tests/Feature/TaskMetricsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskMetricsController;\n\nclass TaskMetricsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskMetricsController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskMetricsController@index is PROOF_READY but no test file at tests/Feature/TaskMetricsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskPrefillController.php::App\\Http\\Controllers\\Api\\TaskPrefillController::getPrefill",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskPrefillController@getPrefill",
        "expected_test_path": "tests/Feature/TaskPrefillControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskPrefillController;\n\nclass TaskPrefillControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskPrefillController@getPrefill\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getprefill_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskPrefillController@getPrefill is PROOF_READY but no test file at tests/Feature/TaskPrefillControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@destroy",
        "expected_test_path": "tests/Feature/TaskWatcherControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskWatcherController;\n\nclass TaskWatcherControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskWatcherController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskWatcherController@destroy is PROOF_READY but no test file at tests/Feature/TaskWatcherControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@index",
        "expected_test_path": "tests/Feature/TaskWatcherControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskWatcherController;\n\nclass TaskWatcherControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskWatcherController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskWatcherController@index is PROOF_READY but no test file at tests/Feature/TaskWatcherControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TaskWatcherController.php::App\\Http\\Controllers\\Api\\TaskWatcherController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TaskWatcherController@store",
        "expected_test_path": "tests/Feature/TaskWatcherControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TaskWatcherController;\n\nclass TaskWatcherControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TaskWatcherController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TaskWatcherController@store is PROOF_READY but no test file at tests/Feature/TaskWatcherControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@destroy",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TeamController;\n\nclass TeamControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TeamController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TeamController@destroy is PROOF_READY but no test file at tests/Feature/TeamControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@index",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TeamController;\n\nclass TeamControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TeamController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TeamController@index is PROOF_READY but no test file at tests/Feature/TeamControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@show",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TeamController;\n\nclass TeamControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TeamController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TeamController@show is PROOF_READY but no test file at tests/Feature/TeamControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@store",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TeamController;\n\nclass TeamControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TeamController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TeamController@store is PROOF_READY but no test file at tests/Feature/TeamControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TeamController.php::App\\Http\\Controllers\\Api\\TeamController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\TeamController@update",
        "expected_test_path": "tests/Feature/TeamControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TeamController;\n\nclass TeamControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TeamController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TeamController@update is PROOF_READY but no test file at tests/Feature/TeamControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::approve",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@approve",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ThreadTaskController;\n\nclass ThreadTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ThreadTaskController@approve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_approve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ThreadTaskController@approve is PROOF_READY but no test file at tests/Feature/ThreadTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::assign",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@assign",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ThreadTaskController;\n\nclass ThreadTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ThreadTaskController@assign\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assign_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ThreadTaskController@assign is PROOF_READY but no test file at tests/Feature/ThreadTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@index",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ThreadTaskController;\n\nclass ThreadTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ThreadTaskController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ThreadTaskController@index is PROOF_READY but no test file at tests/Feature/ThreadTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::reject",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@reject",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ThreadTaskController;\n\nclass ThreadTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ThreadTaskController@reject\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reject_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ThreadTaskController@reject is PROOF_READY but no test file at tests/Feature/ThreadTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@store",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ThreadTaskController;\n\nclass ThreadTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ThreadTaskController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ThreadTaskController@store is PROOF_READY but no test file at tests/Feature/ThreadTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@update",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ThreadTaskController;\n\nclass ThreadTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ThreadTaskController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ThreadTaskController@update is PROOF_READY but no test file at tests/Feature/ThreadTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ThreadTaskController.php::App\\Http\\Controllers\\Api\\ThreadTaskController::updateStatus",
        "fqmn": "App\\Http\\Controllers\\Api\\ThreadTaskController@updateStatus",
        "expected_test_path": "tests/Feature/ThreadTaskControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ThreadTaskController;\n\nclass ThreadTaskControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ThreadTaskController@updateStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updatestatus_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ThreadTaskController@updateStatus is PROOF_READY but no test file at tests/Feature/ThreadTaskControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TransactionController.php::App\\Http\\Controllers\\Api\\TransactionController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\TransactionController@index",
        "expected_test_path": "tests/Feature/TransactionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TransactionController;\n\nclass TransactionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TransactionController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TransactionController@index is PROOF_READY but no test file at tests/Feature/TransactionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/TransactionsHelpController.php::App\\Http\\Controllers\\Api\\TransactionsHelpController::send",
        "fqmn": "App\\Http\\Controllers\\Api\\TransactionsHelpController@send",
        "expected_test_path": "tests/Feature/TransactionsHelpControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\TransactionsHelpController;\n\nclass TransactionsHelpControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\TransactionsHelpController@send\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_send_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\TransactionsHelpController@send is PROOF_READY but no test file at tests/Feature/TransactionsHelpControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/UploadController.php::App\\Http\\Controllers\\Api\\UploadController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\UploadController@store",
        "expected_test_path": "tests/Feature/UploadControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\UploadController;\n\nclass UploadControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\UploadController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\UploadController@store is PROOF_READY but no test file at tests/Feature/UploadControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@destroy",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\UserController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\UserController@destroy is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@index",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\UserController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\UserController@index is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@show",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\UserController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\UserController@show is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@store",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\UserController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\UserController@store is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/UserController.php::App\\Http\\Controllers\\Api\\UserController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\UserController@update",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\UserController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\UserController@update is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/UserDetachController.php::App\\Http\\Controllers\\Api\\UserDetachController::detach",
        "fqmn": "App\\Http\\Controllers\\Api\\UserDetachController@detach",
        "expected_test_path": "tests/Feature/UserDetachControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\UserDetachController;\n\nclass UserDetachControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\UserDetachController@detach\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detach_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\UserDetachController@detach is PROOF_READY but no test file at tests/Feature/UserDetachControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::destroy",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@destroy",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ValueController;\n\nclass ValueControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ValueController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ValueController@destroy is PROOF_READY but no test file at tests/Feature/ValueControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::index",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@index",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ValueController;\n\nclass ValueControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ValueController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ValueController@index is PROOF_READY but no test file at tests/Feature/ValueControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::show",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@show",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ValueController;\n\nclass ValueControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ValueController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ValueController@show is PROOF_READY but no test file at tests/Feature/ValueControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::store",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@store",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ValueController;\n\nclass ValueControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ValueController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ValueController@store is PROOF_READY but no test file at tests/Feature/ValueControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Api/ValueController.php::App\\Http\\Controllers\\Api\\ValueController::update",
        "fqmn": "App\\Http\\Controllers\\Api\\ValueController@update",
        "expected_test_path": "tests/Feature/ValueControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\ValueController;\n\nclass ValueControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\ValueController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\ValueController@update is PROOF_READY but no test file at tests/Feature/ValueControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create",
        "expected_test_path": "tests/Feature/AuthenticatedSessionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\AuthenticatedSessionController;\n\nclass AuthenticatedSessionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create is PROOF_READY but no test file at tests/Feature/AuthenticatedSessionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::destroy",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy",
        "expected_test_path": "tests/Feature/AuthenticatedSessionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\AuthenticatedSessionController;\n\nclass AuthenticatedSessionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy is PROOF_READY but no test file at tests/Feature/AuthenticatedSessionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/AuthenticatedSessionController.php::App\\Http\\Controllers\\Auth\\AuthenticatedSessionController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@store",
        "expected_test_path": "tests/Feature/AuthenticatedSessionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\AuthenticatedSessionController;\n\nclass AuthenticatedSessionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@store is PROOF_READY but no test file at tests/Feature/AuthenticatedSessionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/ConfirmablePasswordController.php::App\\Http\\Controllers\\Auth\\ConfirmablePasswordController::show",
        "fqmn": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@show",
        "expected_test_path": "tests/Feature/ConfirmablePasswordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\ConfirmablePasswordController;\n\nclass ConfirmablePasswordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@show is PROOF_READY but no test file at tests/Feature/ConfirmablePasswordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/ConfirmablePasswordController.php::App\\Http\\Controllers\\Auth\\ConfirmablePasswordController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@store",
        "expected_test_path": "tests/Feature/ConfirmablePasswordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\ConfirmablePasswordController;\n\nclass ConfirmablePasswordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@store is PROOF_READY but no test file at tests/Feature/ConfirmablePasswordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/EmailVerificationNotificationController.php::App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store",
        "expected_test_path": "tests/Feature/EmailVerificationNotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController;\n\nclass EmailVerificationNotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store is PROOF_READY but no test file at tests/Feature/EmailVerificationNotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/EmailVerificationPromptController.php::App\\Http\\Controllers\\Auth\\EmailVerificationPromptController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "expected_test_path": "tests/Feature/EmailVerificationPromptControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\EmailVerificationPromptController;\n\nclass EmailVerificationPromptControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke is PROOF_READY but no test file at tests/Feature/EmailVerificationPromptControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/NewPasswordController.php::App\\Http\\Controllers\\Auth\\NewPasswordController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\NewPasswordController@create",
        "expected_test_path": "tests/Feature/NewPasswordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\NewPasswordController;\n\nclass NewPasswordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\NewPasswordController@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\NewPasswordController@create is PROOF_READY but no test file at tests/Feature/NewPasswordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/NewPasswordController.php::App\\Http\\Controllers\\Auth\\NewPasswordController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\NewPasswordController@store",
        "expected_test_path": "tests/Feature/NewPasswordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\NewPasswordController;\n\nclass NewPasswordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\NewPasswordController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\NewPasswordController@store is PROOF_READY but no test file at tests/Feature/NewPasswordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/PasswordController.php::App\\Http\\Controllers\\Auth\\PasswordController::update",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordController@update",
        "expected_test_path": "tests/Feature/PasswordControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\PasswordController;\n\nclass PasswordControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PasswordController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\PasswordController@update is PROOF_READY but no test file at tests/Feature/PasswordControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/PasswordResetLinkController.php::App\\Http\\Controllers\\Auth\\PasswordResetLinkController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create",
        "expected_test_path": "tests/Feature/PasswordResetLinkControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\PasswordResetLinkController;\n\nclass PasswordResetLinkControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create is PROOF_READY but no test file at tests/Feature/PasswordResetLinkControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/PasswordResetLinkController.php::App\\Http\\Controllers\\Auth\\PasswordResetLinkController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@store",
        "expected_test_path": "tests/Feature/PasswordResetLinkControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\PasswordResetLinkController;\n\nclass PasswordResetLinkControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PasswordResetLinkController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\PasswordResetLinkController@store is PROOF_READY but no test file at tests/Feature/PasswordResetLinkControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/PublicVerifyEmailController.php::App\\Http\\Controllers\\Auth\\PublicVerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "expected_test_path": "tests/Feature/PublicVerifyEmailControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\PublicVerifyEmailController;\n\nclass PublicVerifyEmailControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke is PROOF_READY but no test file at tests/Feature/PublicVerifyEmailControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/RegisteredUserController.php::App\\Http\\Controllers\\Auth\\RegisteredUserController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "expected_test_path": "tests/Feature/RegisteredUserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\RegisteredUserController;\n\nclass RegisteredUserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\RegisteredUserController@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\RegisteredUserController@create is PROOF_READY but no test file at tests/Feature/RegisteredUserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/RegisteredUserController.php::App\\Http\\Controllers\\Auth\\RegisteredUserController::store",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@store",
        "expected_test_path": "tests/Feature/RegisteredUserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\RegisteredUserController;\n\nclass RegisteredUserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\RegisteredUserController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\RegisteredUserController@store is PROOF_READY but no test file at tests/Feature/RegisteredUserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Auth/VerifyEmailController.php::App\\Http\\Controllers\\Auth\\VerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\VerifyEmailController@__invoke",
        "expected_test_path": "tests/Feature/VerifyEmailControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\VerifyEmailController;\n\nclass VerifyEmailControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\VerifyEmailController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\VerifyEmailController@__invoke is PROOF_READY but no test file at tests/Feature/VerifyEmailControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/BackorderCancelController.php::App\\Http\\Controllers\\BackorderCancelController::cancel",
        "fqmn": "App\\Http\\Controllers\\BackorderCancelController@cancel",
        "expected_test_path": "tests/Feature/BackorderCancelControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\BackorderCancelController;\n\nclass BackorderCancelControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\BackorderCancelController@cancel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancel_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\BackorderCancelController@cancel is PROOF_READY but no test file at tests/Feature/BackorderCancelControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Billing/UpdateCardMagicLinkController.php::App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "expected_test_path": "tests/Feature/UpdateCardMagicLinkControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController;\n\nclass UpdateCardMagicLinkControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke is PROOF_READY but no test file at tests/Feature/UpdateCardMagicLinkControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::add",
        "fqmn": "App\\Http\\Controllers\\CartController@add",
        "expected_test_path": "tests/Feature/CartControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\CartController;\n\nclass CartControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\CartController@add\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_add_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\CartController@add is PROOF_READY but no test file at tests/Feature/CartControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::index",
        "fqmn": "App\\Http\\Controllers\\CartController@index",
        "expected_test_path": "tests/Feature/CartControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\CartController;\n\nclass CartControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\CartController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\CartController@index is PROOF_READY but no test file at tests/Feature/CartControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::remove",
        "fqmn": "App\\Http\\Controllers\\CartController@remove",
        "expected_test_path": "tests/Feature/CartControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\CartController;\n\nclass CartControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\CartController@remove\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_remove_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\CartController@remove is PROOF_READY but no test file at tests/Feature/CartControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/CartController.php::App\\Http\\Controllers\\CartController::update",
        "fqmn": "App\\Http\\Controllers\\CartController@update",
        "expected_test_path": "tests/Feature/CartControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\CartController;\n\nclass CartControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\CartController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\CartController@update is PROOF_READY but no test file at tests/Feature/CartControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ContactController.php::App\\Http\\Controllers\\ContactController::store",
        "fqmn": "App\\Http\\Controllers\\ContactController@store",
        "expected_test_path": "tests/Feature/ContactControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ContactController;\n\nclass ContactControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ContactController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ContactController@store is PROOF_READY but no test file at tests/Feature/ContactControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Dev/SubscriptionDryRunController.php::App\\Http\\Controllers\\Dev\\SubscriptionDryRunController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Dev\\SubscriptionDryRunController@__invoke",
        "expected_test_path": "tests/Feature/SubscriptionDryRunControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Dev\\SubscriptionDryRunController;\n\nclass SubscriptionDryRunControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Dev\\SubscriptionDryRunController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Dev\\SubscriptionDryRunController@__invoke is PROOF_READY but no test file at tests/Feature/SubscriptionDryRunControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::feedback",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@feedback",
        "expected_test_path": "tests/Feature/DigestFeedbackControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\DigestFeedbackController;\n\nclass DigestFeedbackControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\DigestFeedbackController@feedback\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_feedback_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\DigestFeedbackController@feedback is PROOF_READY but no test file at tests/Feature/DigestFeedbackControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::track",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@track",
        "expected_test_path": "tests/Feature/DigestFeedbackControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\DigestFeedbackController;\n\nclass DigestFeedbackControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\DigestFeedbackController@track\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_track_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\DigestFeedbackController@track is PROOF_READY but no test file at tests/Feature/DigestFeedbackControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/DigestFeedbackController.php::App\\Http\\Controllers\\DigestFeedbackController::unsubscribe",
        "fqmn": "App\\Http\\Controllers\\DigestFeedbackController@unsubscribe",
        "expected_test_path": "tests/Feature/DigestFeedbackControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\DigestFeedbackController;\n\nclass DigestFeedbackControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\DigestFeedbackController@unsubscribe\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unsubscribe_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\DigestFeedbackController@unsubscribe is PROOF_READY but no test file at tests/Feature/DigestFeedbackControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employee/RewardsReceiptController.php::App\\Http\\Controllers\\Employee\\RewardsReceiptController::download",
        "fqmn": "App\\Http\\Controllers\\Employee\\RewardsReceiptController@download",
        "expected_test_path": "tests/Feature/RewardsReceiptControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employee\\RewardsReceiptController;\n\nclass RewardsReceiptControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employee\\RewardsReceiptController@download\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_download_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employee\\RewardsReceiptController@download is PROOF_READY but no test file at tests/Feature/RewardsReceiptControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::activate",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@activate",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\AutomationWebController;\n\nclass AutomationWebControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\AutomationWebController@activate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_activate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\AutomationWebController@activate is PROOF_READY but no test file at tests/Feature/AutomationWebControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::pause",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@pause",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\AutomationWebController;\n\nclass AutomationWebControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\AutomationWebController@pause\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pause_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\AutomationWebController@pause is PROOF_READY but no test file at tests/Feature/AutomationWebControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRaisePolicy",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\AutomationWebController;\n\nclass AutomationWebControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_saveraisepolicy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaisePolicy is PROOF_READY but no test file at tests/Feature/AutomationWebControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRaiseTemplates",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\AutomationWebController;\n\nclass AutomationWebControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_saveraisetemplates_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\AutomationWebController@saveRaiseTemplates is PROOF_READY but no test file at tests/Feature/AutomationWebControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRewardsPolicy",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardsPolicy",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\AutomationWebController;\n\nclass AutomationWebControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardsPolicy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_saverewardspolicy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardsPolicy is PROOF_READY but no test file at tests/Feature/AutomationWebControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/AutomationWebController.php::App\\Http\\Controllers\\Employer\\AutomationWebController::saveRewardTemplates",
        "fqmn": "App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardTemplates",
        "expected_test_path": "tests/Feature/AutomationWebControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\AutomationWebController;\n\nclass AutomationWebControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardTemplates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_saverewardtemplates_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\AutomationWebController@saveRewardTemplates is PROOF_READY but no test file at tests/Feature/AutomationWebControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::cancelSeatSchedule",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@cancelSeatSchedule",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\BillingController;\n\nclass BillingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\BillingController@cancelSeatSchedule\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancelseatschedule_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\BillingController@cancelSeatSchedule is PROOF_READY but no test file at tests/Feature/BillingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::cancelSubscriptionAtPeriodEnd",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\BillingController;\n\nclass BillingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancelsubscriptionatperiodend_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\BillingController@cancelSubscriptionAtPeriodEnd is PROOF_READY but no test file at tests/Feature/BillingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::purchaseSeats",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@purchaseSeats",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\BillingController;\n\nclass BillingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\BillingController@purchaseSeats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_purchaseseats_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\BillingController@purchaseSeats is PROOF_READY but no test file at tests/Feature/BillingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::purchaseSeatsSuccess",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@purchaseSeatsSuccess",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\BillingController;\n\nclass BillingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\BillingController@purchaseSeatsSuccess\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_purchaseseatssuccess_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\BillingController@purchaseSeatsSuccess is PROOF_READY but no test file at tests/Feature/BillingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::resumeSubscription",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@resumeSubscription",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\BillingController;\n\nclass BillingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\BillingController@resumeSubscription\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resumesubscription_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\BillingController@resumeSubscription is PROOF_READY but no test file at tests/Feature/BillingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/BillingController.php::App\\Http\\Controllers\\Employer\\BillingController::scheduleSeatReduction",
        "fqmn": "App\\Http\\Controllers\\Employer\\BillingController@scheduleSeatReduction",
        "expected_test_path": "tests/Feature/BillingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\BillingController;\n\nclass BillingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\BillingController@scheduleSeatReduction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_scheduleseatreduction_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\BillingController@scheduleSeatReduction is PROOF_READY but no test file at tests/Feature/BillingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomExportController.php::App\\Http\\Controllers\\Employer\\ControlRoomExportController::downloadJson",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadJson",
        "expected_test_path": "tests/Feature/ControlRoomExportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\ControlRoomExportController;\n\nclass ControlRoomExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadJson\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_downloadjson_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadJson is PROOF_READY but no test file at tests/Feature/ControlRoomExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomExportController.php::App\\Http\\Controllers\\Employer\\ControlRoomExportController::downloadPdf",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadPdf",
        "expected_test_path": "tests/Feature/ControlRoomExportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\ControlRoomExportController;\n\nclass ControlRoomExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadPdf\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_downloadpdf_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\ControlRoomExportController@downloadPdf is PROOF_READY but no test file at tests/Feature/ControlRoomExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/ControlRoomInvestigationController.php::App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController::show",
        "fqmn": "App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController@show",
        "expected_test_path": "tests/Feature/ControlRoomInvestigationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController;\n\nclass ControlRoomInvestigationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\ControlRoomInvestigationController@show is PROOF_READY but no test file at tests/Feature/ControlRoomInvestigationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/HireReadinessPdfController.php::App\\Http\\Controllers\\Employer\\HireReadinessPdfController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\HireReadinessPdfController@export",
        "expected_test_path": "tests/Feature/HireReadinessPdfControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\HireReadinessPdfController;\n\nclass HireReadinessPdfControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\HireReadinessPdfController@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\HireReadinessPdfController@export is PROOF_READY but no test file at tests/Feature/HireReadinessPdfControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/KpiExportController.php::App\\Http\\Controllers\\Employer\\KpiExportController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\KpiExportController@export",
        "expected_test_path": "tests/Feature/KpiExportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\KpiExportController;\n\nclass KpiExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\KpiExportController@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\KpiExportController@export is PROOF_READY but no test file at tests/Feature/KpiExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/KpiExportController.php::App\\Http\\Controllers\\Employer\\KpiExportController::recompute",
        "fqmn": "App\\Http\\Controllers\\Employer\\KpiExportController@recompute",
        "expected_test_path": "tests/Feature/KpiExportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\KpiExportController;\n\nclass KpiExportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\KpiExportController@recompute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recompute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\KpiExportController@recompute is PROOF_READY but no test file at tests/Feature/KpiExportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/OAuthEmailController.php::App\\Http\\Controllers\\Employer\\OAuthEmailController::callback",
        "fqmn": "App\\Http\\Controllers\\Employer\\OAuthEmailController@callback",
        "expected_test_path": "tests/Feature/OAuthEmailControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\OAuthEmailController;\n\nclass OAuthEmailControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\OAuthEmailController@callback\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_callback_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\OAuthEmailController@callback is PROOF_READY but no test file at tests/Feature/OAuthEmailControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/OAuthEmailController.php::App\\Http\\Controllers\\Employer\\OAuthEmailController::connect",
        "fqmn": "App\\Http\\Controllers\\Employer\\OAuthEmailController@connect",
        "expected_test_path": "tests/Feature/OAuthEmailControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\OAuthEmailController;\n\nclass OAuthEmailControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\OAuthEmailController@connect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_connect_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\OAuthEmailController@connect is PROOF_READY but no test file at tests/Feature/OAuthEmailControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::oneClickUpgrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@oneClickUpgrade",
        "expected_test_path": "tests/Feature/PlanCheckoutControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\PlanCheckoutController;\n\nclass PlanCheckoutControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\PlanCheckoutController@oneClickUpgrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_oneclickupgrade_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\PlanCheckoutController@oneClickUpgrade is PROOF_READY but no test file at tests/Feature/PlanCheckoutControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::purchasePlan",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@purchasePlan",
        "expected_test_path": "tests/Feature/PlanCheckoutControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\PlanCheckoutController;\n\nclass PlanCheckoutControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\PlanCheckoutController@purchasePlan\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_purchaseplan_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\PlanCheckoutController@purchasePlan is PROOF_READY but no test file at tests/Feature/PlanCheckoutControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/PlanCheckoutController.php::App\\Http\\Controllers\\Employer\\PlanCheckoutController::success",
        "fqmn": "App\\Http\\Controllers\\Employer\\PlanCheckoutController@success",
        "expected_test_path": "tests/Feature/PlanCheckoutControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\PlanCheckoutController;\n\nclass PlanCheckoutControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\PlanCheckoutController@success\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_success_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\PlanCheckoutController@success is PROOF_READY but no test file at tests/Feature/PlanCheckoutControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/RewardsStatementController.php::App\\Http\\Controllers\\Employer\\RewardsStatementController::export",
        "fqmn": "App\\Http\\Controllers\\Employer\\RewardsStatementController@export",
        "expected_test_path": "tests/Feature/RewardsStatementControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\RewardsStatementController;\n\nclass RewardsStatementControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\RewardsStatementController@export\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_export_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\RewardsStatementController@export is PROOF_READY but no test file at tests/Feature/RewardsStatementControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/SubscriptionController.php::App\\Http\\Controllers\\Employer\\SubscriptionController::applyDowngrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applydowngrade_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\SubscriptionController@applyDowngrade is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Employer/SubscriptionController.php::App\\Http\\Controllers\\Employer\\SubscriptionController::applyUpgrade",
        "fqmn": "App\\Http\\Controllers\\Employer\\SubscriptionController@applyUpgrade",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Employer\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Employer\\SubscriptionController@applyUpgrade\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applyupgrade_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Employer\\SubscriptionController@applyUpgrade is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::destroy",
        "fqmn": "App\\Http\\Controllers\\GroupController@destroy",
        "expected_test_path": "tests/Feature/GroupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\GroupController;\n\nclass GroupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\GroupController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\GroupController@destroy is PROOF_READY but no test file at tests/Feature/GroupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::store",
        "fqmn": "App\\Http\\Controllers\\GroupController@store",
        "expected_test_path": "tests/Feature/GroupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\GroupController;\n\nclass GroupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\GroupController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\GroupController@store is PROOF_READY but no test file at tests/Feature/GroupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/GroupController.php::App\\Http\\Controllers\\GroupController::update",
        "fqmn": "App\\Http\\Controllers\\GroupController@update",
        "expected_test_path": "tests/Feature/GroupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\GroupController;\n\nclass GroupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\GroupController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\GroupController@update is PROOF_READY but no test file at tests/Feature/GroupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::connect",
        "fqmn": "App\\Http\\Controllers\\HelpController@connect",
        "expected_test_path": "tests/Feature/HelpControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\HelpController;\n\nclass HelpControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\HelpController@connect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_connect_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\HelpController@connect is PROOF_READY but no test file at tests/Feature/HelpControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::dmTest",
        "fqmn": "App\\Http\\Controllers\\HelpController@dmTest",
        "expected_test_path": "tests/Feature/HelpControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\HelpController;\n\nclass HelpControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\HelpController@dmTest\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dmtest_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\HelpController@dmTest is PROOF_READY but no test file at tests/Feature/HelpControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/HelpController.php::App\\Http\\Controllers\\HelpController::health",
        "fqmn": "App\\Http\\Controllers\\HelpController@health",
        "expected_test_path": "tests/Feature/HelpControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\HelpController;\n\nclass HelpControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\HelpController@health\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_health_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\HelpController@health is PROOF_READY but no test file at tests/Feature/HelpControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/HomeController.php::App\\Http\\Controllers\\HomeController::home",
        "fqmn": "App\\Http\\Controllers\\HomeController@home",
        "expected_test_path": "tests/Feature/HomeControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\HomeController;\n\nclass HomeControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\HomeController@home\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_home_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\HomeController@home is PROOF_READY but no test file at tests/Feature/HomeControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ImportController.php::App\\Http\\Controllers\\ImportController::autocorrect",
        "fqmn": "App\\Http\\Controllers\\ImportController@autocorrect",
        "expected_test_path": "tests/Feature/ImportControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ImportController;\n\nclass ImportControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ImportController@autocorrect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_autocorrect_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ImportController@autocorrect is PROOF_READY but no test file at tests/Feature/ImportControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::apply",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@apply",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ImportPreviewController;\n\nclass ImportPreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ImportPreviewController@apply\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_apply_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ImportPreviewController@apply is PROOF_READY but no test file at tests/Feature/ImportPreviewControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::download",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@download",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ImportPreviewController;\n\nclass ImportPreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ImportPreviewController@download\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_download_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ImportPreviewController@download is PROOF_READY but no test file at tests/Feature/ImportPreviewControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::dryRun",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@dryRun",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ImportPreviewController;\n\nclass ImportPreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ImportPreviewController@dryRun\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dryrun_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ImportPreviewController@dryRun is PROOF_READY but no test file at tests/Feature/ImportPreviewControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::index",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@index",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ImportPreviewController;\n\nclass ImportPreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ImportPreviewController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ImportPreviewController@index is PROOF_READY but no test file at tests/Feature/ImportPreviewControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::preview",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@preview",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ImportPreviewController;\n\nclass ImportPreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ImportPreviewController@preview\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_preview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ImportPreviewController@preview is PROOF_READY but no test file at tests/Feature/ImportPreviewControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ImportPreviewController.php::App\\Http\\Controllers\\ImportPreviewController::status",
        "fqmn": "App\\Http\\Controllers\\ImportPreviewController@status",
        "expected_test_path": "tests/Feature/ImportPreviewControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ImportPreviewController;\n\nclass ImportPreviewControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ImportPreviewController@status\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_status_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ImportPreviewController@status is PROOF_READY but no test file at tests/Feature/ImportPreviewControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/Integrations/OtoWebhookController.php::App\\Http\\Controllers\\Integrations\\OtoWebhookController::handle",
        "fqmn": "App\\Http\\Controllers\\Integrations\\OtoWebhookController@handle",
        "expected_test_path": "tests/Feature/OtoWebhookControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Integrations\\OtoWebhookController;\n\nclass OtoWebhookControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Integrations\\OtoWebhookController@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Integrations\\OtoWebhookController@handle is PROOF_READY but no test file at tests/Feature/OtoWebhookControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/LandingController.php::App\\Http\\Controllers\\LandingController::__invoke",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "expected_test_path": "tests/Feature/LandingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\LandingController;\n\nclass LandingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LandingController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\LandingController@__invoke is PROOF_READY but no test file at tests/Feature/LandingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/LandingController.php::App\\Http\\Controllers\\LandingController::index",
        "fqmn": "App\\Http\\Controllers\\LandingController@index",
        "expected_test_path": "tests/Feature/LandingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\LandingController;\n\nclass LandingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LandingController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\LandingController@index is PROOF_READY but no test file at tests/Feature/LandingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::byGroup",
        "fqmn": "App\\Http\\Controllers\\MessageController@byGroup",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\MessageController@byGroup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bygroup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\MessageController@byGroup is PROOF_READY but no test file at tests/Feature/MessageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::byUser",
        "fqmn": "App\\Http\\Controllers\\MessageController@byUser",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\MessageController@byUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_byuser_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\MessageController@byUser is PROOF_READY but no test file at tests/Feature/MessageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::destroy",
        "fqmn": "App\\Http\\Controllers\\MessageController@destroy",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\MessageController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\MessageController@destroy is PROOF_READY but no test file at tests/Feature/MessageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::loadOlder",
        "fqmn": "App\\Http\\Controllers\\MessageController@loadOlder",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\MessageController@loadOlder\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loadolder_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\MessageController@loadOlder is PROOF_READY but no test file at tests/Feature/MessageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::markRead",
        "fqmn": "App\\Http\\Controllers\\MessageController@markRead",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\MessageController@markRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markread_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\MessageController@markRead is PROOF_READY but no test file at tests/Feature/MessageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::react",
        "fqmn": "App\\Http\\Controllers\\MessageController@react",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\MessageController@react\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_react_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\MessageController@react is PROOF_READY but no test file at tests/Feature/MessageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::showAttachment",
        "fqmn": "App\\Http\\Controllers\\MessageController@showAttachment",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\MessageController@showAttachment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_showattachment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\MessageController@showAttachment is PROOF_READY but no test file at tests/Feature/MessageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/MessageController.php::App\\Http\\Controllers\\MessageController::store",
        "fqmn": "App\\Http\\Controllers\\MessageController@store",
        "expected_test_path": "tests/Feature/MessageControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\MessageController;\n\nclass MessageControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\MessageController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\MessageController@store is PROOF_READY but no test file at tests/Feature/MessageControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/NotificationController.php::App\\Http\\Controllers\\NotificationController::markAllAsRead",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAllAsRead",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\NotificationController@markAllAsRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markallasread_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\NotificationController@markAllAsRead is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/NotificationController.php::App\\Http\\Controllers\\NotificationController::markAsRead",
        "fqmn": "App\\Http\\Controllers\\NotificationController@markAsRead",
        "expected_test_path": "tests/Feature/NotificationControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\NotificationController;\n\nclass NotificationControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\NotificationController@markAsRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markasread_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\NotificationController@markAsRead is PROOF_READY but no test file at tests/Feature/NotificationControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/OrdersController.php::App\\Http\\Controllers\\OrdersController::index",
        "fqmn": "App\\Http\\Controllers\\OrdersController@index",
        "expected_test_path": "tests/Feature/OrdersControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\OrdersController;\n\nclass OrdersControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\OrdersController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\OrdersController@index is PROOF_READY but no test file at tests/Feature/OrdersControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/OrdersController.php::App\\Http\\Controllers\\OrdersController::show",
        "fqmn": "App\\Http\\Controllers\\OrdersController@show",
        "expected_test_path": "tests/Feature/OrdersControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\OrdersController;\n\nclass OrdersControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\OrdersController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\OrdersController@show is PROOF_READY but no test file at tests/Feature/OrdersControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::destroy",
        "fqmn": "App\\Http\\Controllers\\ProfileController@destroy",
        "expected_test_path": "tests/Feature/ProfileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ProfileController;\n\nclass ProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ProfileController@destroy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_destroy_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ProfileController@destroy is PROOF_READY but no test file at tests/Feature/ProfileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::edit",
        "fqmn": "App\\Http\\Controllers\\ProfileController@edit",
        "expected_test_path": "tests/Feature/ProfileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ProfileController;\n\nclass ProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ProfileController@edit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ProfileController@edit is PROOF_READY but no test file at tests/Feature/ProfileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/ProfileController.php::App\\Http\\Controllers\\ProfileController::update",
        "fqmn": "App\\Http\\Controllers\\ProfileController@update",
        "expected_test_path": "tests/Feature/ProfileControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\ProfileController;\n\nclass ProfileControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\ProfileController@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\ProfileController@update is PROOF_READY but no test file at tests/Feature/ProfileControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::addComment",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addComment",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@addComment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_addcomment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@addComment is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::addReaction",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@addReaction",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@addReaction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_addreaction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@addReaction is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::colleagues",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@colleagues",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@colleagues\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_colleagues_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@colleagues is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::create",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@create",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@create is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::index",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@index",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@index is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::removeReaction",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@removeReaction",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@removeReaction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_removereaction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@removeReaction is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::show",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@show",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@show is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::stats",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@stats",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@stats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_stats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@stats is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RecognitionController.php::App\\Http\\Controllers\\RecognitionController::store",
        "fqmn": "App\\Http\\Controllers\\RecognitionController@store",
        "expected_test_path": "tests/Feature/RecognitionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RecognitionController;\n\nclass RecognitionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RecognitionController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RecognitionController@store is PROOF_READY but no test file at tests/Feature/RecognitionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::form",
        "fqmn": "App\\Http\\Controllers\\RfqController@form",
        "expected_test_path": "tests/Feature/RfqControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RfqController;\n\nclass RfqControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RfqController@form\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_form_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RfqController@form is PROOF_READY but no test file at tests/Feature/RfqControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::pdf",
        "fqmn": "App\\Http\\Controllers\\RfqController@pdf",
        "expected_test_path": "tests/Feature/RfqControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RfqController;\n\nclass RfqControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RfqController@pdf\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pdf_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RfqController@pdf is PROOF_READY but no test file at tests/Feature/RfqControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::submit",
        "fqmn": "App\\Http\\Controllers\\RfqController@submit",
        "expected_test_path": "tests/Feature/RfqControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RfqController;\n\nclass RfqControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RfqController@submit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_submit_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RfqController@submit is PROOF_READY but no test file at tests/Feature/RfqControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/RfqController.php::App\\Http\\Controllers\\RfqController::thankyou",
        "fqmn": "App\\Http\\Controllers\\RfqController@thankyou",
        "expected_test_path": "tests/Feature/RfqControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\RfqController;\n\nclass RfqControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\RfqController@thankyou\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_thankyou_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\RfqController@thankyou is PROOF_READY but no test file at tests/Feature/RfqControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SecureOrderPdfController.php::App\\Http\\Controllers\\SecureOrderPdfController::planInvoicePdf",
        "fqmn": "App\\Http\\Controllers\\SecureOrderPdfController@planInvoicePdf",
        "expected_test_path": "tests/Feature/SecureOrderPdfControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SecureOrderPdfController;\n\nclass SecureOrderPdfControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SecureOrderPdfController@planInvoicePdf\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_planinvoicepdf_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SecureOrderPdfController@planInvoicePdf is PROOF_READY but no test file at tests/Feature/SecureOrderPdfControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/StorefrontController.php::App\\Http\\Controllers\\StorefrontController::index",
        "fqmn": "App\\Http\\Controllers\\StorefrontController@index",
        "expected_test_path": "tests/Feature/StorefrontControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\StorefrontController;\n\nclass StorefrontControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\StorefrontController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\StorefrontController@index is PROOF_READY but no test file at tests/Feature/StorefrontControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/StorefrontController.php::App\\Http\\Controllers\\StorefrontController::show",
        "fqmn": "App\\Http\\Controllers\\StorefrontController@show",
        "expected_test_path": "tests/Feature/StorefrontControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\StorefrontController;\n\nclass StorefrontControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\StorefrontController@show\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_show_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\StorefrontController@show is PROOF_READY but no test file at tests/Feature/StorefrontControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::billing",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@billing",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@billing\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_billing_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@billing is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::cancel",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@cancel",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@cancel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancel_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@cancel is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::checkout",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@checkout",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@checkout\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkout_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@checkout is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::confirm",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@confirm",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@confirm\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_confirm_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@confirm is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@index is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::plan",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@plan",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@plan\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_plan_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@plan is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::portal",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@portal",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@portal\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_portal_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@portal is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SubscriptionController.php::App\\Http\\Controllers\\SubscriptionController::subscribe",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@subscribe",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@subscribe\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_subscribe_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@subscribe is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SuccessionDossierController.php::App\\Http\\Controllers\\SuccessionDossierController::seal",
        "fqmn": "App\\Http\\Controllers\\SuccessionDossierController@seal",
        "expected_test_path": "tests/Feature/SuccessionDossierControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SuccessionDossierController;\n\nclass SuccessionDossierControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SuccessionDossierController@seal\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_seal_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SuccessionDossierController@seal is PROOF_READY but no test file at tests/Feature/SuccessionDossierControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/SuccessionDossierController.php::App\\Http\\Controllers\\SuccessionDossierController::updateMilestone",
        "fqmn": "App\\Http\\Controllers\\SuccessionDossierController@updateMilestone",
        "expected_test_path": "tests/Feature/SuccessionDossierControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SuccessionDossierController;\n\nclass SuccessionDossierControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SuccessionDossierController@updateMilestone\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updatemilestone_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SuccessionDossierController@updateMilestone is PROOF_READY but no test file at tests/Feature/SuccessionDossierControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::blockUnblock",
        "fqmn": "App\\Http\\Controllers\\UserController@blockUnblock",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\UserController@blockUnblock\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_blockunblock_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\UserController@blockUnblock is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::changeRole",
        "fqmn": "App\\Http\\Controllers\\UserController@changeRole",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\UserController@changeRole\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_changerole_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\UserController@changeRole is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::lookupUlid",
        "fqmn": "App\\Http\\Controllers\\UserController@lookupUlid",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\UserController@lookupUlid\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_lookupulid_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\UserController@lookupUlid is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Controllers/UserController.php::App\\Http\\Controllers\\UserController::store",
        "fqmn": "App\\Http\\Controllers\\UserController@store",
        "expected_test_path": "tests/Feature/UserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\UserController;\n\nclass UserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\UserController@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\UserController@store is PROOF_READY but no test file at tests/Feature/UserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/AssignTaskRequest.php::App\\Http\\Requests\\AssignTaskRequest::authorize",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@authorize",
        "expected_test_path": "tests/Feature/AssignTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\AssignTaskRequest;\n\nclass AssignTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\AssignTaskRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\AssignTaskRequest@authorize is PROOF_READY but no test file at tests/Feature/AssignTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/AssignTaskRequest.php::App\\Http\\Requests\\AssignTaskRequest::messages",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@messages",
        "expected_test_path": "tests/Feature/AssignTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\AssignTaskRequest;\n\nclass AssignTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\AssignTaskRequest@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\AssignTaskRequest@messages is PROOF_READY but no test file at tests/Feature/AssignTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/AssignTaskRequest.php::App\\Http\\Requests\\AssignTaskRequest::rules",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@rules",
        "expected_test_path": "tests/Feature/AssignTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\AssignTaskRequest;\n\nclass AssignTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\AssignTaskRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\AssignTaskRequest@rules is PROOF_READY but no test file at tests/Feature/AssignTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/AssignTaskRequest.php::App\\Http\\Requests\\AssignTaskRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\AssignTaskRequest@withValidator",
        "expected_test_path": "tests/Feature/AssignTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\AssignTaskRequest;\n\nclass AssignTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\AssignTaskRequest@withValidator\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_withvalidator_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\AssignTaskRequest@withValidator is PROOF_READY but no test file at tests/Feature/AssignTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@authorize",
        "expected_test_path": "tests/Feature/LoginRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Auth\\LoginRequest;\n\nclass LoginRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\LoginRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Auth\\LoginRequest@authorize is PROOF_READY but no test file at tests/Feature/LoginRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::ensureIsNotRateLimited",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@ensureIsNotRateLimited",
        "expected_test_path": "tests/Feature/LoginRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Auth\\LoginRequest;\n\nclass LoginRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\LoginRequest@ensureIsNotRateLimited\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_ensureisnotratelimited_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Auth\\LoginRequest@ensureIsNotRateLimited is PROOF_READY but no test file at tests/Feature/LoginRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::rules",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@rules",
        "expected_test_path": "tests/Feature/LoginRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Auth\\LoginRequest;\n\nclass LoginRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\LoginRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Auth\\LoginRequest@rules is PROOF_READY but no test file at tests/Feature/LoginRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Auth/LoginRequest.php::App\\Http\\Requests\\Auth\\LoginRequest::throttleKey",
        "fqmn": "App\\Http\\Requests\\Auth\\LoginRequest@throttleKey",
        "expected_test_path": "tests/Feature/LoginRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Auth\\LoginRequest;\n\nclass LoginRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Auth\\LoginRequest@throttleKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_throttlekey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Auth\\LoginRequest@throttleKey is PROOF_READY but no test file at tests/Feature/LoginRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::authorize",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@authorize",
        "expected_test_path": "tests/Feature/StoreDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\StoreDocumentRequest;\n\nclass StoreDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\StoreDocumentRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\StoreDocumentRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::messages",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@messages",
        "expected_test_path": "tests/Feature/StoreDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\StoreDocumentRequest;\n\nclass StoreDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\StoreDocumentRequest@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\StoreDocumentRequest@messages is PROOF_READY but no test file at tests/Feature/StoreDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::rules",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@rules",
        "expected_test_path": "tests/Feature/StoreDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\StoreDocumentRequest;\n\nclass StoreDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\StoreDocumentRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\StoreDocumentRequest@rules is PROOF_READY but no test file at tests/Feature/StoreDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Document/StoreDocumentRequest.php::App\\Http\\Requests\\Document\\StoreDocumentRequest::validatedWithDefaults",
        "fqmn": "App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults",
        "expected_test_path": "tests/Feature/StoreDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Document\\StoreDocumentRequest;\n\nclass StoreDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatedwithdefaults_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Document\\StoreDocumentRequest@validatedWithDefaults is PROOF_READY but no test file at tests/Feature/StoreDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::messages",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@messages",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Employer\\ControlRoomExportRequest;\n\nclass ControlRoomExportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Employer\\ControlRoomExportRequest@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Employer\\ControlRoomExportRequest@messages is PROOF_READY but no test file at tests/Feature/ControlRoomExportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::rules",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@rules",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Employer\\ControlRoomExportRequest;\n\nclass ControlRoomExportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Employer\\ControlRoomExportRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Employer\\ControlRoomExportRequest@rules is PROOF_READY but no test file at tests/Feature/ControlRoomExportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedFrom",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Employer\\ControlRoomExportRequest;\n\nclass ControlRoomExportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatedfrom_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedFrom is PROOF_READY but no test file at tests/Feature/ControlRoomExportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedPeriod",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Employer\\ControlRoomExportRequest;\n\nclass ControlRoomExportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatedperiod_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedPeriod is PROOF_READY but no test file at tests/Feature/ControlRoomExportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedScope",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedScope",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Employer\\ControlRoomExportRequest;\n\nclass ControlRoomExportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedScope\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatedscope_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedScope is PROOF_READY but no test file at tests/Feature/ControlRoomExportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validatedTo",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedTo",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Employer\\ControlRoomExportRequest;\n\nclass ControlRoomExportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedTo\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatedto_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validatedTo is PROOF_READY but no test file at tests/Feature/ControlRoomExportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/Employer/ControlRoomExportRequest.php::App\\Http\\Requests\\Employer\\ControlRoomExportRequest::validationData",
        "fqmn": "App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validationData",
        "expected_test_path": "tests/Feature/ControlRoomExportRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\Employer\\ControlRoomExportRequest;\n\nclass ControlRoomExportRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validationData\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validationdata_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\Employer\\ControlRoomExportRequest@validationData is PROOF_READY but no test file at tests/Feature/ControlRoomExportRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/ProfileUpdateRequest.php::App\\Http\\Requests\\ProfileUpdateRequest::rules",
        "fqmn": "App\\Http\\Requests\\ProfileUpdateRequest@rules",
        "expected_test_path": "tests/Feature/ProfileUpdateRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\ProfileUpdateRequest;\n\nclass ProfileUpdateRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\ProfileUpdateRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\ProfileUpdateRequest@rules is PROOF_READY but no test file at tests/Feature/ProfileUpdateRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreGroupRequest.php::App\\Http\\Requests\\StoreGroupRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreGroupRequest@authorize",
        "expected_test_path": "tests/Feature/StoreGroupRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreGroupRequest;\n\nclass StoreGroupRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreGroupRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreGroupRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreGroupRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreGroupRequest.php::App\\Http\\Requests\\StoreGroupRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreGroupRequest@rules",
        "expected_test_path": "tests/Feature/StoreGroupRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreGroupRequest;\n\nclass StoreGroupRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreGroupRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreGroupRequest@rules is PROOF_READY but no test file at tests/Feature/StoreGroupRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreGroupRequest.php::App\\Http\\Requests\\StoreGroupRequest::validated",
        "fqmn": "App\\Http\\Requests\\StoreGroupRequest@validated",
        "expected_test_path": "tests/Feature/StoreGroupRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreGroupRequest;\n\nclass StoreGroupRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreGroupRequest@validated\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validated_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreGroupRequest@validated is PROOF_READY but no test file at tests/Feature/StoreGroupRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreMessageRequest.php::App\\Http\\Requests\\StoreMessageRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreMessageRequest@authorize",
        "expected_test_path": "tests/Feature/StoreMessageRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreMessageRequest;\n\nclass StoreMessageRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreMessageRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreMessageRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreMessageRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreMessageRequest.php::App\\Http\\Requests\\StoreMessageRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreMessageRequest@rules",
        "expected_test_path": "tests/Feature/StoreMessageRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreMessageRequest;\n\nclass StoreMessageRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreMessageRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreMessageRequest@rules is PROOF_READY but no test file at tests/Feature/StoreMessageRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreRecognitionRequest.php::App\\Http\\Requests\\StoreRecognitionRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreRecognitionRequest@authorize",
        "expected_test_path": "tests/Feature/StoreRecognitionRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreRecognitionRequest;\n\nclass StoreRecognitionRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreRecognitionRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreRecognitionRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreRecognitionRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreRecognitionRequest.php::App\\Http\\Requests\\StoreRecognitionRequest::messages",
        "fqmn": "App\\Http\\Requests\\StoreRecognitionRequest@messages",
        "expected_test_path": "tests/Feature/StoreRecognitionRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreRecognitionRequest;\n\nclass StoreRecognitionRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreRecognitionRequest@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreRecognitionRequest@messages is PROOF_READY but no test file at tests/Feature/StoreRecognitionRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreRecognitionRequest.php::App\\Http\\Requests\\StoreRecognitionRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreRecognitionRequest@rules",
        "expected_test_path": "tests/Feature/StoreRecognitionRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreRecognitionRequest;\n\nclass StoreRecognitionRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreRecognitionRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreRecognitionRequest@rules is PROOF_READY but no test file at tests/Feature/StoreRecognitionRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreTaskForDocumentRequest.php::App\\Http\\Requests\\StoreTaskForDocumentRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreTaskForDocumentRequest@authorize",
        "expected_test_path": "tests/Feature/StoreTaskForDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreTaskForDocumentRequest;\n\nclass StoreTaskForDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreTaskForDocumentRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreTaskForDocumentRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreTaskForDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreTaskForDocumentRequest.php::App\\Http\\Requests\\StoreTaskForDocumentRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreTaskForDocumentRequest@rules",
        "expected_test_path": "tests/Feature/StoreTaskForDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreTaskForDocumentRequest;\n\nclass StoreTaskForDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreTaskForDocumentRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreTaskForDocumentRequest@rules is PROOF_READY but no test file at tests/Feature/StoreTaskForDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreTaskRequest.php::App\\Http\\Requests\\StoreTaskRequest::authorize",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@authorize",
        "expected_test_path": "tests/Feature/StoreTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreTaskRequest;\n\nclass StoreTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreTaskRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreTaskRequest@authorize is PROOF_READY but no test file at tests/Feature/StoreTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreTaskRequest.php::App\\Http\\Requests\\StoreTaskRequest::messages",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@messages",
        "expected_test_path": "tests/Feature/StoreTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreTaskRequest;\n\nclass StoreTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreTaskRequest@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreTaskRequest@messages is PROOF_READY but no test file at tests/Feature/StoreTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/StoreTaskRequest.php::App\\Http\\Requests\\StoreTaskRequest::rules",
        "fqmn": "App\\Http\\Requests\\StoreTaskRequest@rules",
        "expected_test_path": "tests/Feature/StoreTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\StoreTaskRequest;\n\nclass StoreTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\StoreTaskRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\StoreTaskRequest@rules is PROOF_READY but no test file at tests/Feature/StoreTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateGroupRequest.php::App\\Http\\Requests\\UpdateGroupRequest::authorize",
        "fqmn": "App\\Http\\Requests\\UpdateGroupRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateGroupRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateGroupRequest;\n\nclass UpdateGroupRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateGroupRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateGroupRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateGroupRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateGroupRequest.php::App\\Http\\Requests\\UpdateGroupRequest::rules",
        "fqmn": "App\\Http\\Requests\\UpdateGroupRequest@rules",
        "expected_test_path": "tests/Feature/UpdateGroupRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateGroupRequest;\n\nclass UpdateGroupRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateGroupRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateGroupRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateGroupRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskForDocumentRequest.php::App\\Http\\Requests\\UpdateTaskForDocumentRequest::authorize",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateTaskForDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskForDocumentRequest;\n\nclass UpdateTaskForDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskForDocumentRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskForDocumentRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateTaskForDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskForDocumentRequest.php::App\\Http\\Requests\\UpdateTaskForDocumentRequest::messages",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@messages",
        "expected_test_path": "tests/Feature/UpdateTaskForDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskForDocumentRequest;\n\nclass UpdateTaskForDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskForDocumentRequest@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskForDocumentRequest@messages is PROOF_READY but no test file at tests/Feature/UpdateTaskForDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskForDocumentRequest.php::App\\Http\\Requests\\UpdateTaskForDocumentRequest::rules",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@rules",
        "expected_test_path": "tests/Feature/UpdateTaskForDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskForDocumentRequest;\n\nclass UpdateTaskForDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskForDocumentRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskForDocumentRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateTaskForDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskForDocumentRequest.php::App\\Http\\Requests\\UpdateTaskForDocumentRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\UpdateTaskForDocumentRequest@withValidator",
        "expected_test_path": "tests/Feature/UpdateTaskForDocumentRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskForDocumentRequest;\n\nclass UpdateTaskForDocumentRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskForDocumentRequest@withValidator\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_withvalidator_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskForDocumentRequest@withValidator is PROOF_READY but no test file at tests/Feature/UpdateTaskForDocumentRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskRequest.php::App\\Http\\Requests\\UpdateTaskRequest::authorize",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskRequest;\n\nclass UpdateTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskRequest.php::App\\Http\\Requests\\UpdateTaskRequest::messages",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@messages",
        "expected_test_path": "tests/Feature/UpdateTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskRequest;\n\nclass UpdateTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskRequest@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskRequest@messages is PROOF_READY but no test file at tests/Feature/UpdateTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskRequest.php::App\\Http\\Requests\\UpdateTaskRequest::rules",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@rules",
        "expected_test_path": "tests/Feature/UpdateTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskRequest;\n\nclass UpdateTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskRequest.php::App\\Http\\Requests\\UpdateTaskRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\UpdateTaskRequest@withValidator",
        "expected_test_path": "tests/Feature/UpdateTaskRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskRequest;\n\nclass UpdateTaskRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskRequest@withValidator\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_withvalidator_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskRequest@withValidator is PROOF_READY but no test file at tests/Feature/UpdateTaskRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskStatusRequest.php::App\\Http\\Requests\\UpdateTaskStatusRequest::authorize",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@authorize",
        "expected_test_path": "tests/Feature/UpdateTaskStatusRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskStatusRequest;\n\nclass UpdateTaskStatusRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskStatusRequest@authorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_authorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskStatusRequest@authorize is PROOF_READY but no test file at tests/Feature/UpdateTaskStatusRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskStatusRequest.php::App\\Http\\Requests\\UpdateTaskStatusRequest::messages",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@messages",
        "expected_test_path": "tests/Feature/UpdateTaskStatusRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskStatusRequest;\n\nclass UpdateTaskStatusRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskStatusRequest@messages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_messages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskStatusRequest@messages is PROOF_READY but no test file at tests/Feature/UpdateTaskStatusRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskStatusRequest.php::App\\Http\\Requests\\UpdateTaskStatusRequest::rules",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@rules",
        "expected_test_path": "tests/Feature/UpdateTaskStatusRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskStatusRequest;\n\nclass UpdateTaskStatusRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskStatusRequest@rules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskStatusRequest@rules is PROOF_READY but no test file at tests/Feature/UpdateTaskStatusRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Requests/UpdateTaskStatusRequest.php::App\\Http\\Requests\\UpdateTaskStatusRequest::withValidator",
        "fqmn": "App\\Http\\Requests\\UpdateTaskStatusRequest@withValidator",
        "expected_test_path": "tests/Feature/UpdateTaskStatusRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Requests\\UpdateTaskStatusRequest;\n\nclass UpdateTaskStatusRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Requests\\UpdateTaskStatusRequest@withValidator\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_withvalidator_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Http\\Requests\\UpdateTaskStatusRequest@withValidator is PROOF_READY but no test file at tests/Feature/UpdateTaskStatusRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/GroupResource.php::App\\Http\\Resources\\GroupResource::toArray",
        "fqmn": "App\\Http\\Resources\\GroupResource@toArray",
        "expected_test_path": "tests/Feature/GroupResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\GroupResource;\n\nclass GroupResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\GroupResource@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\GroupResource@toArray is PROOF_READY but no test file at tests/Feature/GroupResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/MessageAttachmentResource.php::App\\Http\\Resources\\MessageAttachmentResource::toArray",
        "fqmn": "App\\Http\\Resources\\MessageAttachmentResource@toArray",
        "expected_test_path": "tests/Feature/MessageAttachmentResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\MessageAttachmentResource;\n\nclass MessageAttachmentResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\MessageAttachmentResource@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\MessageAttachmentResource@toArray is PROOF_READY but no test file at tests/Feature/MessageAttachmentResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/MessageResource.php::App\\Http\\Resources\\MessageResource::toArray",
        "fqmn": "App\\Http\\Resources\\MessageResource@toArray",
        "expected_test_path": "tests/Feature/MessageResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\MessageResource;\n\nclass MessageResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\MessageResource@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\MessageResource@toArray is PROOF_READY but no test file at tests/Feature/MessageResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/TaskResource.php::App\\Http\\Resources\\TaskResource::toArray",
        "fqmn": "App\\Http\\Resources\\TaskResource@toArray",
        "expected_test_path": "tests/Feature/TaskResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\TaskResource;\n\nclass TaskResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\TaskResource@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\TaskResource@toArray is PROOF_READY but no test file at tests/Feature/TaskResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Http",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Http/Resources/UserResource.php::App\\Http\\Resources\\UserResource::toArray",
        "fqmn": "App\\Http\\Resources\\UserResource@toArray",
        "expected_test_path": "tests/Feature/UserResourceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Resources\\UserResource;\n\nclass UserResourceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Resources\\UserResource@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Resources\\UserResource@toArray is PROOF_READY but no test file at tests/Feature/UserResourceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/AutoCorrectUsersImport.php::App\\Jobs\\AutoCorrectUsersImport::handle",
        "fqmn": "App\\Jobs\\AutoCorrectUsersImport@handle",
        "expected_test_path": "tests/Feature/AutoCorrectUsersImportTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\AutoCorrectUsersImport;\n\nclass AutoCorrectUsersImportTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\AutoCorrectUsersImport@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\AutoCorrectUsersImport@handle is PROOF_READY but no test file at tests/Feature/AutoCorrectUsersImportTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/Billing/RecordGatewayFeeJob.php::App\\Jobs\\Billing\\RecordGatewayFeeJob::middleware",
        "fqmn": "App\\Jobs\\Billing\\RecordGatewayFeeJob@middleware",
        "expected_test_path": "tests/Feature/RecordGatewayFeeJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Billing\\RecordGatewayFeeJob;\n\nclass RecordGatewayFeeJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Billing\\RecordGatewayFeeJob@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Billing\\RecordGatewayFeeJob@middleware is PROOF_READY but no test file at tests/Feature/RecordGatewayFeeJobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/BroadcastRecognitionCreated.php::App\\Jobs\\BroadcastRecognitionCreated::handle",
        "fqmn": "App\\Jobs\\BroadcastRecognitionCreated@handle",
        "expected_test_path": "tests/Feature/BroadcastRecognitionCreatedTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\BroadcastRecognitionCreated;\n\nclass BroadcastRecognitionCreatedTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\BroadcastRecognitionCreated@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\BroadcastRecognitionCreated@handle is PROOF_READY but no test file at tests/Feature/BroadcastRecognitionCreatedTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/ComputeCompanyMetricsRun.php::App\\Jobs\\ComputeCompanyMetricsRun::uniqueId",
        "fqmn": "App\\Jobs\\ComputeCompanyMetricsRun@uniqueId",
        "expected_test_path": "tests/Feature/ComputeCompanyMetricsRunTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\ComputeCompanyMetricsRun;\n\nclass ComputeCompanyMetricsRunTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\ComputeCompanyMetricsRun@uniqueId\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_uniqueid_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\ComputeCompanyMetricsRun@uniqueId is PROOF_READY but no test file at tests/Feature/ComputeCompanyMetricsRunTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/ComputeControlRoomAiSummary.php::App\\Jobs\\ComputeControlRoomAiSummary::handle",
        "fqmn": "App\\Jobs\\ComputeControlRoomAiSummary@handle",
        "expected_test_path": "tests/Feature/ComputeControlRoomAiSummaryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\ComputeControlRoomAiSummary;\n\nclass ComputeControlRoomAiSummaryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\ComputeControlRoomAiSummary@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\ComputeControlRoomAiSummary@handle is PROOF_READY but no test file at tests/Feature/ComputeControlRoomAiSummaryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/CreateZohoBillForOrderSupplier.php::App\\Jobs\\CreateZohoBillForOrderSupplier::handle",
        "fqmn": "App\\Jobs\\CreateZohoBillForOrderSupplier@handle",
        "expected_test_path": "tests/Feature/CreateZohoBillForOrderSupplierTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\CreateZohoBillForOrderSupplier;\n\nclass CreateZohoBillForOrderSupplierTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\CreateZohoBillForOrderSupplier@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\CreateZohoBillForOrderSupplier@handle is PROOF_READY but no test file at tests/Feature/CreateZohoBillForOrderSupplierTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/CreateZohoBillForOrderSupplier.php::App\\Jobs\\CreateZohoBillForOrderSupplier::middleware",
        "fqmn": "App\\Jobs\\CreateZohoBillForOrderSupplier@middleware",
        "expected_test_path": "tests/Feature/CreateZohoBillForOrderSupplierTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\CreateZohoBillForOrderSupplier;\n\nclass CreateZohoBillForOrderSupplierTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\CreateZohoBillForOrderSupplier@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\CreateZohoBillForOrderSupplier@middleware is PROOF_READY but no test file at tests/Feature/CreateZohoBillForOrderSupplierTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/CreateZohoInvoiceForOrder.php::App\\Jobs\\CreateZohoInvoiceForOrder::handle",
        "fqmn": "App\\Jobs\\CreateZohoInvoiceForOrder@handle",
        "expected_test_path": "tests/Feature/CreateZohoInvoiceForOrderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\CreateZohoInvoiceForOrder;\n\nclass CreateZohoInvoiceForOrderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\CreateZohoInvoiceForOrder@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\CreateZohoInvoiceForOrder@handle is PROOF_READY but no test file at tests/Feature/CreateZohoInvoiceForOrderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/CreateZohoInvoiceForOrder.php::App\\Jobs\\CreateZohoInvoiceForOrder::middleware",
        "fqmn": "App\\Jobs\\CreateZohoInvoiceForOrder@middleware",
        "expected_test_path": "tests/Feature/CreateZohoInvoiceForOrderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\CreateZohoInvoiceForOrder;\n\nclass CreateZohoInvoiceForOrderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\CreateZohoInvoiceForOrder@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\CreateZohoInvoiceForOrder@middleware is PROOF_READY but no test file at tests/Feature/CreateZohoInvoiceForOrderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/CreateZohoPurchaseOrdersForOrder.php::App\\Jobs\\CreateZohoPurchaseOrdersForOrder::handle",
        "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@handle",
        "expected_test_path": "tests/Feature/CreateZohoPurchaseOrdersForOrderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\CreateZohoPurchaseOrdersForOrder;\n\nclass CreateZohoPurchaseOrdersForOrderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\CreateZohoPurchaseOrdersForOrder@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\CreateZohoPurchaseOrdersForOrder@handle is PROOF_READY but no test file at tests/Feature/CreateZohoPurchaseOrdersForOrderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/CreateZohoPurchaseOrdersForOrder.php::App\\Jobs\\CreateZohoPurchaseOrdersForOrder::middleware",
        "fqmn": "App\\Jobs\\CreateZohoPurchaseOrdersForOrder@middleware",
        "expected_test_path": "tests/Feature/CreateZohoPurchaseOrdersForOrderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\CreateZohoPurchaseOrdersForOrder;\n\nclass CreateZohoPurchaseOrdersForOrderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\CreateZohoPurchaseOrdersForOrder@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\CreateZohoPurchaseOrdersForOrder@middleware is PROOF_READY but no test file at tests/Feature/CreateZohoPurchaseOrdersForOrderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/EnsureOrderZohoAdvance.php::App\\Jobs\\EnsureOrderZohoAdvance::handle",
        "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@handle",
        "expected_test_path": "tests/Feature/EnsureOrderZohoAdvanceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\EnsureOrderZohoAdvance;\n\nclass EnsureOrderZohoAdvanceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\EnsureOrderZohoAdvance@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\EnsureOrderZohoAdvance@handle is PROOF_READY but no test file at tests/Feature/EnsureOrderZohoAdvanceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/EnsureOrderZohoAdvance.php::App\\Jobs\\EnsureOrderZohoAdvance::middleware",
        "fqmn": "App\\Jobs\\EnsureOrderZohoAdvance@middleware",
        "expected_test_path": "tests/Feature/EnsureOrderZohoAdvanceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\EnsureOrderZohoAdvance;\n\nclass EnsureOrderZohoAdvanceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\EnsureOrderZohoAdvance@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\EnsureOrderZohoAdvance@middleware is PROOF_READY but no test file at tests/Feature/EnsureOrderZohoAdvanceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/GenerateHelpBotReply.php::App\\Jobs\\GenerateHelpBotReply::handle",
        "fqmn": "App\\Jobs\\GenerateHelpBotReply@handle",
        "expected_test_path": "tests/Feature/GenerateHelpBotReplyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\GenerateHelpBotReply;\n\nclass GenerateHelpBotReplyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\GenerateHelpBotReply@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\GenerateHelpBotReply@handle is PROOF_READY but no test file at tests/Feature/GenerateHelpBotReplyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::cacheKey",
        "fqmn": "App\\Jobs\\GenerateReferralInsights@cacheKey",
        "expected_test_path": "tests/Feature/GenerateReferralInsightsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\GenerateReferralInsights;\n\nclass GenerateReferralInsightsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\GenerateReferralInsights@cacheKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cachekey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\GenerateReferralInsights@cacheKey is PROOF_READY but no test file at tests/Feature/GenerateReferralInsightsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/GenerateReferralInsights.php::App\\Jobs\\GenerateReferralInsights::handle",
        "fqmn": "App\\Jobs\\GenerateReferralInsights@handle",
        "expected_test_path": "tests/Feature/GenerateReferralInsightsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\GenerateReferralInsights;\n\nclass GenerateReferralInsightsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\GenerateReferralInsights@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\GenerateReferralInsights@handle is PROOF_READY but no test file at tests/Feature/GenerateReferralInsightsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/Middleware/EnsureFeature.php::App\\Jobs\\Middleware\\EnsureFeature::handle",
        "fqmn": "App\\Jobs\\Middleware\\EnsureFeature@handle",
        "expected_test_path": "tests/Feature/EnsureFeatureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Middleware\\EnsureFeature;\n\nclass EnsureFeatureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Middleware\\EnsureFeature@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Middleware\\EnsureFeature@handle is PROOF_READY but no test file at tests/Feature/EnsureFeatureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/PostShippingExpenseToZoho.php::App\\Jobs\\PostShippingExpenseToZoho::handle",
        "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@handle",
        "expected_test_path": "tests/Feature/PostShippingExpenseToZohoTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\PostShippingExpenseToZoho;\n\nclass PostShippingExpenseToZohoTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\PostShippingExpenseToZoho@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\PostShippingExpenseToZoho@handle is PROOF_READY but no test file at tests/Feature/PostShippingExpenseToZohoTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/PostShippingExpenseToZoho.php::App\\Jobs\\PostShippingExpenseToZoho::middleware",
        "fqmn": "App\\Jobs\\PostShippingExpenseToZoho@middleware",
        "expected_test_path": "tests/Feature/PostShippingExpenseToZohoTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\PostShippingExpenseToZoho;\n\nclass PostShippingExpenseToZohoTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\PostShippingExpenseToZoho@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\PostShippingExpenseToZoho@middleware is PROOF_READY but no test file at tests/Feature/PostShippingExpenseToZohoTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/PrefetchPlanInvoice.php::App\\Jobs\\PrefetchPlanInvoice::handle",
        "fqmn": "App\\Jobs\\PrefetchPlanInvoice@handle",
        "expected_test_path": "tests/Feature/PrefetchPlanInvoiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\PrefetchPlanInvoice;\n\nclass PrefetchPlanInvoiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\PrefetchPlanInvoice@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\PrefetchPlanInvoice@handle is PROOF_READY but no test file at tests/Feature/PrefetchPlanInvoiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/PrefetchPlanInvoice.php::App\\Jobs\\PrefetchPlanInvoice::middleware",
        "fqmn": "App\\Jobs\\PrefetchPlanInvoice@middleware",
        "expected_test_path": "tests/Feature/PrefetchPlanInvoiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\PrefetchPlanInvoice;\n\nclass PrefetchPlanInvoiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\PrefetchPlanInvoice@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\PrefetchPlanInvoice@middleware is PROOF_READY but no test file at tests/Feature/PrefetchPlanInvoiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/PrefetchWalletReceipt.php::App\\Jobs\\PrefetchWalletReceipt::handle",
        "fqmn": "App\\Jobs\\PrefetchWalletReceipt@handle",
        "expected_test_path": "tests/Feature/PrefetchWalletReceiptTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\PrefetchWalletReceipt;\n\nclass PrefetchWalletReceiptTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\PrefetchWalletReceipt@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\PrefetchWalletReceipt@handle is PROOF_READY but no test file at tests/Feature/PrefetchWalletReceiptTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/PrefetchWalletReceipt.php::App\\Jobs\\PrefetchWalletReceipt::middleware",
        "fqmn": "App\\Jobs\\PrefetchWalletReceipt@middleware",
        "expected_test_path": "tests/Feature/PrefetchWalletReceiptTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\PrefetchWalletReceipt;\n\nclass PrefetchWalletReceiptTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\PrefetchWalletReceipt@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\PrefetchWalletReceipt@middleware is PROOF_READY but no test file at tests/Feature/PrefetchWalletReceiptTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/Promotion/SendCycleClosingReminders.php::App\\Jobs\\Promotion\\SendCycleClosingReminders::handle",
        "fqmn": "App\\Jobs\\Promotion\\SendCycleClosingReminders@handle",
        "expected_test_path": "tests/Feature/SendCycleClosingRemindersTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Promotion\\SendCycleClosingReminders;\n\nclass SendCycleClosingRemindersTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Promotion\\SendCycleClosingReminders@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Promotion\\SendCycleClosingReminders@handle is PROOF_READY but no test file at tests/Feature/SendCycleClosingRemindersTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/RecordOtoTopUpInZoho.php::App\\Jobs\\RecordOtoTopUpInZoho::handle",
        "fqmn": "App\\Jobs\\RecordOtoTopUpInZoho@handle",
        "expected_test_path": "tests/Feature/RecordOtoTopUpInZohoTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\RecordOtoTopUpInZoho;\n\nclass RecordOtoTopUpInZohoTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\RecordOtoTopUpInZoho@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\RecordOtoTopUpInZoho@handle is PROOF_READY but no test file at tests/Feature/RecordOtoTopUpInZohoTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/RecordOtoTopUpInZoho.php::App\\Jobs\\RecordOtoTopUpInZoho::middleware",
        "fqmn": "App\\Jobs\\RecordOtoTopUpInZoho@middleware",
        "expected_test_path": "tests/Feature/RecordOtoTopUpInZohoTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\RecordOtoTopUpInZoho;\n\nclass RecordOtoTopUpInZohoTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\RecordOtoTopUpInZoho@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\RecordOtoTopUpInZoho@middleware is PROOF_READY but no test file at tests/Feature/RecordOtoTopUpInZohoTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/SeedGuidedCompanyValues.php::App\\Jobs\\SeedGuidedCompanyValues::handle",
        "fqmn": "App\\Jobs\\SeedGuidedCompanyValues@handle",
        "expected_test_path": "tests/Feature/SeedGuidedCompanyValuesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\SeedGuidedCompanyValues;\n\nclass SeedGuidedCompanyValuesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\SeedGuidedCompanyValues@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\SeedGuidedCompanyValues@handle is PROOF_READY but no test file at tests/Feature/SeedGuidedCompanyValuesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/SendOrderCompletionNotification.php::App\\Jobs\\SendOrderCompletionNotification::handle",
        "fqmn": "App\\Jobs\\SendOrderCompletionNotification@handle",
        "expected_test_path": "tests/Feature/SendOrderCompletionNotificationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\SendOrderCompletionNotification;\n\nclass SendOrderCompletionNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\SendOrderCompletionNotification@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\SendOrderCompletionNotification@handle is PROOF_READY but no test file at tests/Feature/SendOrderCompletionNotificationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::handle",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@handle",
        "expected_test_path": "tests/Feature/GenerateStarterKpisForUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser;\n\nclass GenerateStarterKpisForUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@handle is PROOF_READY but no test file at tests/Feature/GenerateStarterKpisForUserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/StrategyAlignment/GenerateStarterKpisForUser.php::App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser::progressCacheKey",
        "fqmn": "App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@progressCacheKey",
        "expected_test_path": "tests/Feature/GenerateStarterKpisForUserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser;\n\nclass GenerateStarterKpisForUserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@progressCacheKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_progresscachekey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\StrategyAlignment\\GenerateStarterKpisForUser@progressCacheKey is PROOF_READY but no test file at tests/Feature/GenerateStarterKpisForUserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/Subscriptions/AutoChargeSubscriptionsJob.php::App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob::middleware",
        "fqmn": "App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob@middleware",
        "expected_test_path": "tests/Feature/AutoChargeSubscriptionsJobTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob;\n\nclass AutoChargeSubscriptionsJobTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Subscriptions\\AutoChargeSubscriptionsJob@middleware is PROOF_READY but no test file at tests/Feature/AutoChargeSubscriptionsJobTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/Succession/GenerateSuccessionCurriculum.php::App\\Jobs\\Succession\\GenerateSuccessionCurriculum::failed",
        "fqmn": "App\\Jobs\\Succession\\GenerateSuccessionCurriculum@failed",
        "expected_test_path": "tests/Feature/GenerateSuccessionCurriculumTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Succession\\GenerateSuccessionCurriculum;\n\nclass GenerateSuccessionCurriculumTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Succession\\GenerateSuccessionCurriculum@failed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_failed_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Succession\\GenerateSuccessionCurriculum@failed is PROOF_READY but no test file at tests/Feature/GenerateSuccessionCurriculumTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/Succession/GenerateSuccessionCurriculum.php::App\\Jobs\\Succession\\GenerateSuccessionCurriculum::handle",
        "fqmn": "App\\Jobs\\Succession\\GenerateSuccessionCurriculum@handle",
        "expected_test_path": "tests/Feature/GenerateSuccessionCurriculumTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\Succession\\GenerateSuccessionCurriculum;\n\nclass GenerateSuccessionCurriculumTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\Succession\\GenerateSuccessionCurriculum@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\Succession\\GenerateSuccessionCurriculum@handle is PROOF_READY but no test file at tests/Feature/GenerateSuccessionCurriculumTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/SyncProductToZoho.php::App\\Jobs\\SyncProductToZoho::handle",
        "fqmn": "App\\Jobs\\SyncProductToZoho@handle",
        "expected_test_path": "tests/Feature/SyncProductToZohoTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\SyncProductToZoho;\n\nclass SyncProductToZohoTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\SyncProductToZoho@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\SyncProductToZoho@handle is PROOF_READY but no test file at tests/Feature/SyncProductToZohoTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/SyncProductToZoho.php::App\\Jobs\\SyncProductToZoho::middleware",
        "fqmn": "App\\Jobs\\SyncProductToZoho@middleware",
        "expected_test_path": "tests/Feature/SyncProductToZohoTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\SyncProductToZoho;\n\nclass SyncProductToZohoTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\SyncProductToZoho@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\SyncProductToZoho@middleware is PROOF_READY but no test file at tests/Feature/SyncProductToZohoTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/UploadZohoBillAttachment.php::App\\Jobs\\UploadZohoBillAttachment::handle",
        "fqmn": "App\\Jobs\\UploadZohoBillAttachment@handle",
        "expected_test_path": "tests/Feature/UploadZohoBillAttachmentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\UploadZohoBillAttachment;\n\nclass UploadZohoBillAttachmentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\UploadZohoBillAttachment@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\UploadZohoBillAttachment@handle is PROOF_READY but no test file at tests/Feature/UploadZohoBillAttachmentTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Jobs",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Jobs/UploadZohoBillAttachment.php::App\\Jobs\\UploadZohoBillAttachment::middleware",
        "fqmn": "App\\Jobs\\UploadZohoBillAttachment@middleware",
        "expected_test_path": "tests/Feature/UploadZohoBillAttachmentTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Jobs\\UploadZohoBillAttachment;\n\nclass UploadZohoBillAttachmentTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Jobs\\UploadZohoBillAttachment@middleware\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_middleware_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Jobs\\UploadZohoBillAttachment@middleware is PROOF_READY but no test file at tests/Feature/UploadZohoBillAttachmentTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/AlertOpsOnChargebackCreated.php::App\\Listeners\\AlertOpsOnChargebackCreated::handle",
        "fqmn": "App\\Listeners\\AlertOpsOnChargebackCreated@handle",
        "expected_test_path": "tests/Feature/AlertOpsOnChargebackCreatedTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\AlertOpsOnChargebackCreated;\n\nclass AlertOpsOnChargebackCreatedTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\AlertOpsOnChargebackCreated@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\AlertOpsOnChargebackCreated@handle is PROOF_READY but no test file at tests/Feature/AlertOpsOnChargebackCreatedTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/AlertOpsOnDisputeCreated.php::App\\Listeners\\AlertOpsOnDisputeCreated::handle",
        "fqmn": "App\\Listeners\\AlertOpsOnDisputeCreated@handle",
        "expected_test_path": "tests/Feature/AlertOpsOnDisputeCreatedTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\AlertOpsOnDisputeCreated;\n\nclass AlertOpsOnDisputeCreatedTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\AlertOpsOnDisputeCreated@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\AlertOpsOnDisputeCreated@handle is PROOF_READY but no test file at tests/Feature/AlertOpsOnDisputeCreatedTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastAs",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastAs",
        "expected_test_path": "tests/Feature/BroadcastDatabaseNotificationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\BroadcastDatabaseNotification;\n\nclass BroadcastDatabaseNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\BroadcastDatabaseNotification@broadcastAs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_broadcastas_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\BroadcastDatabaseNotification@broadcastAs is PROOF_READY but no test file at tests/Feature/BroadcastDatabaseNotificationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastOn",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastOn",
        "expected_test_path": "tests/Feature/BroadcastDatabaseNotificationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\BroadcastDatabaseNotification;\n\nclass BroadcastDatabaseNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\BroadcastDatabaseNotification@broadcastOn\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_broadcaston_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\BroadcastDatabaseNotification@broadcastOn is PROOF_READY but no test file at tests/Feature/BroadcastDatabaseNotificationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::broadcastWith",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@broadcastWith",
        "expected_test_path": "tests/Feature/BroadcastDatabaseNotificationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\BroadcastDatabaseNotification;\n\nclass BroadcastDatabaseNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\BroadcastDatabaseNotification@broadcastWith\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_broadcastwith_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\BroadcastDatabaseNotification@broadcastWith is PROOF_READY but no test file at tests/Feature/BroadcastDatabaseNotificationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/BroadcastDatabaseNotification.php::App\\Listeners\\BroadcastDatabaseNotification::handle",
        "fqmn": "App\\Listeners\\BroadcastDatabaseNotification@handle",
        "expected_test_path": "tests/Feature/BroadcastDatabaseNotificationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\BroadcastDatabaseNotification;\n\nclass BroadcastDatabaseNotificationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\BroadcastDatabaseNotification@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\BroadcastDatabaseNotification@handle is PROOF_READY but no test file at tests/Feature/BroadcastDatabaseNotificationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleApproved",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleApproved",
        "expected_test_path": "tests/Feature/DispatchHireWebhooksTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\DispatchHireWebhooks;\n\nclass DispatchHireWebhooksTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\DispatchHireWebhooks@handleApproved\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handleapproved_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\DispatchHireWebhooks@handleApproved is PROOF_READY but no test file at tests/Feature/DispatchHireWebhooksTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleCheckpointCompleted",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleCheckpointCompleted",
        "expected_test_path": "tests/Feature/DispatchHireWebhooksTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\DispatchHireWebhooks;\n\nclass DispatchHireWebhooksTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\DispatchHireWebhooks@handleCheckpointCompleted\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlecheckpointcompleted_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\DispatchHireWebhooks@handleCheckpointCompleted is PROOF_READY but no test file at tests/Feature/DispatchHireWebhooksTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/DispatchHireWebhooks.php::App\\Listeners\\DispatchHireWebhooks::handleRejected",
        "fqmn": "App\\Listeners\\DispatchHireWebhooks@handleRejected",
        "expected_test_path": "tests/Feature/DispatchHireWebhooksTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\DispatchHireWebhooks;\n\nclass DispatchHireWebhooksTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\DispatchHireWebhooks@handleRejected\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handlerejected_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\DispatchHireWebhooks@handleRejected is PROOF_READY but no test file at tests/Feature/DispatchHireWebhooksTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/EnforceHighWaterMark.php::App\\Listeners\\EnforceHighWaterMark::recordSeatAddition",
        "fqmn": "App\\Listeners\\EnforceHighWaterMark@recordSeatAddition",
        "expected_test_path": "tests/Feature/EnforceHighWaterMarkTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\EnforceHighWaterMark;\n\nclass EnforceHighWaterMarkTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\EnforceHighWaterMark@recordSeatAddition\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recordseataddition_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\EnforceHighWaterMark@recordSeatAddition is PROOF_READY but no test file at tests/Feature/EnforceHighWaterMarkTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/Rewards/FreezePointsOnCompanyCancellation.php::App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation::handle",
        "fqmn": "App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation@handle",
        "expected_test_path": "tests/Feature/FreezePointsOnCompanyCancellationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation;\n\nclass FreezePointsOnCompanyCancellationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\Rewards\\FreezePointsOnCompanyCancellation@handle is PROOF_READY but no test file at tests/Feature/FreezePointsOnCompanyCancellationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/List",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Listeners/SuspendAutoChargeOnDispute.php::App\\Listeners\\SuspendAutoChargeOnDispute::handle",
        "fqmn": "App\\Listeners\\SuspendAutoChargeOnDispute@handle",
        "expected_test_path": "tests/Feature/SuspendAutoChargeOnDisputeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Listeners\\SuspendAutoChargeOnDispute;\n\nclass SuspendAutoChargeOnDisputeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Listeners\\SuspendAutoChargeOnDispute@handle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_handle_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Listeners\\SuspendAutoChargeOnDispute@handle is PROOF_READY but no test file at tests/Feature/SuspendAutoChargeOnDisputeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/Group.php::App\\Models\\Group::updateGroupWithMessage",
        "fqmn": "App\\Models\\Group@updateGroupWithMessage",
        "expected_test_path": "tests/Unit/GroupTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\Group;\n\nclass GroupTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\Group@updateGroupWithMessage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updategroupwithmessage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\Group@updateGroupWithMessage is PROOF_READY but no test file at tests/Unit/GroupTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::approvals",
        "fqmn": "App\\Models\\HireRequest@approvals",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@approvals\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_approvals_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@approvals is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::company",
        "fqmn": "App\\Models\\HireRequest@company",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@company\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_company_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@company is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::isOpen",
        "fqmn": "App\\Models\\HireRequest@isOpen",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@isOpen\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isopen_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@isOpen is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::isReplacement",
        "fqmn": "App\\Models\\HireRequest@isReplacement",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@isReplacement\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isreplacement_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@isReplacement is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::jdLines",
        "fqmn": "App\\Models\\HireRequest@jdLines",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@jdLines\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_jdlines_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@jdLines is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::jobPosting",
        "fqmn": "App\\Models\\HireRequest@jobPosting",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@jobPosting\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_jobposting_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@jobPosting is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::outcomeCheckpoints",
        "fqmn": "App\\Models\\HireRequest@outcomeCheckpoints",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@outcomeCheckpoints\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_outcomecheckpoints_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@outcomeCheckpoints is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::rejectedBy",
        "fqmn": "App\\Models\\HireRequest@rejectedBy",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@rejectedBy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rejectedby_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@rejectedBy is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::replacementUser",
        "fqmn": "App\\Models\\HireRequest@replacementUser",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@replacementUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_replacementuser_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@replacementUser is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::report",
        "fqmn": "App\\Models\\HireRequest@report",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@report\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_report_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@report is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::requester",
        "fqmn": "App\\Models\\HireRequest@requester",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@requester\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_requester_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@requester is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::targetDepartment",
        "fqmn": "App\\Models\\HireRequest@targetDepartment",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@targetDepartment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_targetdepartment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@targetDepartment is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/HireRequest.php::App\\Models\\HireRequest::targetTeam",
        "fqmn": "App\\Models\\HireRequest@targetTeam",
        "expected_test_path": "tests/Unit/HireRequestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\HireRequest;\n\nclass HireRequestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\HireRequest@targetTeam\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_targetteam_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\HireRequest@targetTeam is PROOF_READY but no test file at tests/Unit/HireRequestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/NotificationSetting.php::App\\Models\\NotificationSetting::forCompany",
        "fqmn": "App\\Models\\NotificationSetting@forCompany",
        "expected_test_path": "tests/Unit/NotificationSettingTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\NotificationSetting;\n\nclass NotificationSettingTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\NotificationSetting@forCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcompany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\NotificationSetting@forCompany is PROOF_READY but no test file at tests/Unit/NotificationSettingTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/Occasions/OccasionEmailConfig.php::App\\Models\\Occasions\\OccasionEmailConfig::getOrCreateForCompany",
        "fqmn": "App\\Models\\Occasions\\OccasionEmailConfig@getOrCreateForCompany",
        "expected_test_path": "tests/Unit/OccasionEmailConfigTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\Occasions\\OccasionEmailConfig;\n\nclass OccasionEmailConfigTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\Occasions\\OccasionEmailConfig@getOrCreateForCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getorcreateforcompany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\Occasions\\OccasionEmailConfig@getOrCreateForCompany is PROOF_READY but no test file at tests/Unit/OccasionEmailConfigTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/Order.php::App\\Models\\Order::derivePrimaryMethod",
        "fqmn": "App\\Models\\Order@derivePrimaryMethod",
        "expected_test_path": "tests/Unit/OrderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\Order;\n\nclass OrderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\Order@derivePrimaryMethod\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deriveprimarymethod_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\Order@derivePrimaryMethod is PROOF_READY but no test file at tests/Unit/OrderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/Order.php::App\\Models\\Order::generateNextNumber",
        "fqmn": "App\\Models\\Order@generateNextNumber",
        "expected_test_path": "tests/Unit/OrderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\Order;\n\nclass OrderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\Order@generateNextNumber\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatenextnumber_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Models\\Order@generateNextNumber is PROOF_READY but no test file at tests/Unit/OrderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/Promotion/SalaryBand.php::App\\Models\\Promotion\\SalaryBand::findCurrentBand",
        "fqmn": "App\\Models\\Promotion\\SalaryBand@findCurrentBand",
        "expected_test_path": "tests/Unit/SalaryBandTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\Promotion\\SalaryBand;\n\nclass SalaryBandTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\Promotion\\SalaryBand@findCurrentBand\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findcurrentband_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\Promotion\\SalaryBand@findCurrentBand is PROOF_READY but no test file at tests/Unit/SalaryBandTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/Rfq.php::App\\Models\\Rfq::generateNumber",
        "fqmn": "App\\Models\\Rfq@generateNumber",
        "expected_test_path": "tests/Unit/RfqTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\Rfq;\n\nclass RfqTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\Rfq@generateNumber\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatenumber_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Models\\Rfq@generateNumber is PROOF_READY but no test file at tests/Unit/RfqTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/Task.php::App\\Models\\Task::target",
        "fqmn": "App\\Models\\Task@target",
        "expected_test_path": "tests/Unit/TaskTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\Task;\n\nclass TaskTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\Task@target\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_target_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\Task@target is PROOF_READY but no test file at tests/Unit/TaskTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/User.php::App\\Models\\User::companies",
        "fqmn": "App\\Models\\User@companies",
        "expected_test_path": "tests/Unit/UserTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\User;\n\nclass UserTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\User@companies\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_companies_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\User@companies is PROOF_READY but no test file at tests/Unit/UserTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/ZohoModifiedSinceCursorState.php::App\\Models\\ZohoModifiedSinceCursorState::advanceTo",
        "fqmn": "App\\Models\\ZohoModifiedSinceCursorState@advanceTo",
        "expected_test_path": "tests/Unit/ZohoModifiedSinceCursorStateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\ZohoModifiedSinceCursorState;\n\nclass ZohoModifiedSinceCursorStateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\ZohoModifiedSinceCursorState@advanceTo\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_advanceto_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Models\\ZohoModifiedSinceCursorState@advanceTo is PROOF_READY but no test file at tests/Unit/ZohoModifiedSinceCursorStateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Mode",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Models/ZohoModifiedSinceCursorState.php::App\\Models\\ZohoModifiedSinceCursorState::current",
        "fqmn": "App\\Models\\ZohoModifiedSinceCursorState@current",
        "expected_test_path": "tests/Unit/ZohoModifiedSinceCursorStateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Models\\ZohoModifiedSinceCursorState;\n\nclass ZohoModifiedSinceCursorStateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Models\\ZohoModifiedSinceCursorState@current\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_current_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Models\\ZohoModifiedSinceCursorState@current is PROOF_READY but no test file at tests/Unit/ZohoModifiedSinceCursorStateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::bulkAction",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@bulkAction",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@bulkAction\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bulkaction_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@bulkAction is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::canViewAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@canViewAny",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@canViewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canviewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@canViewAny is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::create",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@create",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@create is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::delete",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@delete",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@delete is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::deleteAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@deleteAny",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@deleteAny is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::forceDelete",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@forceDelete",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@forceDelete is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::restore",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@restore",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@restore is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::update",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@update",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@update is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::view",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@view",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@view is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/AdminSupplierInvoicePolicy.php::App\\Policies\\AdminSupplierInvoicePolicy::viewAny",
        "fqmn": "App\\Policies\\AdminSupplierInvoicePolicy@viewAny",
        "expected_test_path": "tests/Unit/AdminSupplierInvoicePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\AdminSupplierInvoicePolicy;\n\nclass AdminSupplierInvoicePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\AdminSupplierInvoicePolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\AdminSupplierInvoicePolicy@viewAny is PROOF_READY but no test file at tests/Unit/AdminSupplierInvoicePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/CompanyPolicy.php::App\\Policies\\CompanyPolicy::resumeDunning",
        "fqmn": "App\\Policies\\CompanyPolicy@resumeDunning",
        "expected_test_path": "tests/Unit/CompanyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\CompanyPolicy;\n\nclass CompanyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\CompanyPolicy@resumeDunning\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resumedunning_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\CompanyPolicy@resumeDunning is PROOF_READY but no test file at tests/Unit/CompanyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::forceDelete",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/CompanySubscriptionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\CompanySubscriptionPolicy;\n\nclass CompanySubscriptionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\CompanySubscriptionPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\CompanySubscriptionPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/CompanySubscriptionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::reactivate",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@reactivate",
        "expected_test_path": "tests/Unit/CompanySubscriptionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\CompanySubscriptionPolicy;\n\nclass CompanySubscriptionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\CompanySubscriptionPolicy@reactivate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reactivate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\CompanySubscriptionPolicy@reactivate is PROOF_READY but no test file at tests/Unit/CompanySubscriptionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::restore",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@restore",
        "expected_test_path": "tests/Unit/CompanySubscriptionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\CompanySubscriptionPolicy;\n\nclass CompanySubscriptionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\CompanySubscriptionPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\CompanySubscriptionPolicy@restore is PROOF_READY but no test file at tests/Unit/CompanySubscriptionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/CompanySubscriptionPolicy.php::App\\Policies\\CompanySubscriptionPolicy::revoke",
        "fqmn": "App\\Policies\\CompanySubscriptionPolicy@revoke",
        "expected_test_path": "tests/Unit/CompanySubscriptionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\CompanySubscriptionPolicy;\n\nclass CompanySubscriptionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\CompanySubscriptionPolicy@revoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_revoke_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\CompanySubscriptionPolicy@revoke is PROOF_READY but no test file at tests/Unit/CompanySubscriptionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::canViewAny",
        "fqmn": "App\\Policies\\DeliveryPolicy@canViewAny",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DeliveryPolicy;\n\nclass DeliveryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DeliveryPolicy@canViewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canviewany_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DeliveryPolicy@canViewAny is PROOF_READY but no test file at tests/Unit/DeliveryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::create",
        "fqmn": "App\\Policies\\DeliveryPolicy@create",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DeliveryPolicy;\n\nclass DeliveryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DeliveryPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DeliveryPolicy@create is PROOF_READY but no test file at tests/Unit/DeliveryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::delete",
        "fqmn": "App\\Policies\\DeliveryPolicy@delete",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DeliveryPolicy;\n\nclass DeliveryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DeliveryPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DeliveryPolicy@delete is PROOF_READY but no test file at tests/Unit/DeliveryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::forceDelete",
        "fqmn": "App\\Policies\\DeliveryPolicy@forceDelete",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DeliveryPolicy;\n\nclass DeliveryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DeliveryPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DeliveryPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/DeliveryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::restore",
        "fqmn": "App\\Policies\\DeliveryPolicy@restore",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DeliveryPolicy;\n\nclass DeliveryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DeliveryPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DeliveryPolicy@restore is PROOF_READY but no test file at tests/Unit/DeliveryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::update",
        "fqmn": "App\\Policies\\DeliveryPolicy@update",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DeliveryPolicy;\n\nclass DeliveryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DeliveryPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DeliveryPolicy@update is PROOF_READY but no test file at tests/Unit/DeliveryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::view",
        "fqmn": "App\\Policies\\DeliveryPolicy@view",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DeliveryPolicy;\n\nclass DeliveryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DeliveryPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DeliveryPolicy@view is PROOF_READY but no test file at tests/Unit/DeliveryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DeliveryPolicy.php::App\\Policies\\DeliveryPolicy::viewAny",
        "fqmn": "App\\Policies\\DeliveryPolicy@viewAny",
        "expected_test_path": "tests/Unit/DeliveryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DeliveryPolicy;\n\nclass DeliveryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DeliveryPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DeliveryPolicy@viewAny is PROOF_READY but no test file at tests/Unit/DeliveryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentActivityLogPolicy.php::App\\Policies\\DocumentActivityLogPolicy::view",
        "fqmn": "App\\Policies\\DocumentActivityLogPolicy@view",
        "expected_test_path": "tests/Unit/DocumentActivityLogPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentActivityLogPolicy;\n\nclass DocumentActivityLogPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentActivityLogPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentActivityLogPolicy@view is PROOF_READY but no test file at tests/Unit/DocumentActivityLogPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentActivityLogPolicy.php::App\\Policies\\DocumentActivityLogPolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentActivityLogPolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentActivityLogPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentActivityLogPolicy;\n\nclass DocumentActivityLogPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentActivityLogPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentActivityLogPolicy@viewAny is PROOF_READY but no test file at tests/Unit/DocumentActivityLogPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentFieldPolicy.php::App\\Policies\\DocumentFieldPolicy::accept",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@accept",
        "expected_test_path": "tests/Unit/DocumentFieldPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentFieldPolicy;\n\nclass DocumentFieldPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentFieldPolicy@accept\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_accept_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentFieldPolicy@accept is PROOF_READY but no test file at tests/Unit/DocumentFieldPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentFieldPolicy.php::App\\Policies\\DocumentFieldPolicy::update",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@update",
        "expected_test_path": "tests/Unit/DocumentFieldPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentFieldPolicy;\n\nclass DocumentFieldPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentFieldPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentFieldPolicy@update is PROOF_READY but no test file at tests/Unit/DocumentFieldPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentFieldPolicy.php::App\\Policies\\DocumentFieldPolicy::view",
        "fqmn": "App\\Policies\\DocumentFieldPolicy@view",
        "expected_test_path": "tests/Unit/DocumentFieldPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentFieldPolicy;\n\nclass DocumentFieldPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentFieldPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentFieldPolicy@view is PROOF_READY but no test file at tests/Unit/DocumentFieldPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::comment",
        "fqmn": "App\\Policies\\DocumentPolicy@comment",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@comment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_comment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@comment is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::create",
        "fqmn": "App\\Policies\\DocumentPolicy@create",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@create is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::delete",
        "fqmn": "App\\Policies\\DocumentPolicy@delete",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@delete is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::forceDelete",
        "fqmn": "App\\Policies\\DocumentPolicy@forceDelete",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::manageShares",
        "fqmn": "App\\Policies\\DocumentPolicy@manageShares",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@manageShares\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_manageshares_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@manageShares is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::restore",
        "fqmn": "App\\Policies\\DocumentPolicy@restore",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@restore is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::update",
        "fqmn": "App\\Policies\\DocumentPolicy@update",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@update is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::view",
        "fqmn": "App\\Policies\\DocumentPolicy@view",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@view is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentPolicy.php::App\\Policies\\DocumentPolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentPolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentPolicy;\n\nclass DocumentPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentPolicy@viewAny is PROOF_READY but no test file at tests/Unit/DocumentPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::create",
        "fqmn": "App\\Policies\\DocumentSharePolicy@create",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentSharePolicy;\n\nclass DocumentSharePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentSharePolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentSharePolicy@create is PROOF_READY but no test file at tests/Unit/DocumentSharePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::delete",
        "fqmn": "App\\Policies\\DocumentSharePolicy@delete",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentSharePolicy;\n\nclass DocumentSharePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentSharePolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentSharePolicy@delete is PROOF_READY but no test file at tests/Unit/DocumentSharePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::update",
        "fqmn": "App\\Policies\\DocumentSharePolicy@update",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentSharePolicy;\n\nclass DocumentSharePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentSharePolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentSharePolicy@update is PROOF_READY but no test file at tests/Unit/DocumentSharePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::view",
        "fqmn": "App\\Policies\\DocumentSharePolicy@view",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentSharePolicy;\n\nclass DocumentSharePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentSharePolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentSharePolicy@view is PROOF_READY but no test file at tests/Unit/DocumentSharePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentSharePolicy.php::App\\Policies\\DocumentSharePolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentSharePolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentSharePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentSharePolicy;\n\nclass DocumentSharePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentSharePolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentSharePolicy@viewAny is PROOF_READY but no test file at tests/Unit/DocumentSharePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::create",
        "fqmn": "App\\Policies\\DocumentTypePolicy@create",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentTypePolicy;\n\nclass DocumentTypePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentTypePolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentTypePolicy@create is PROOF_READY but no test file at tests/Unit/DocumentTypePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::delete",
        "fqmn": "App\\Policies\\DocumentTypePolicy@delete",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentTypePolicy;\n\nclass DocumentTypePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentTypePolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentTypePolicy@delete is PROOF_READY but no test file at tests/Unit/DocumentTypePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::forceDelete",
        "fqmn": "App\\Policies\\DocumentTypePolicy@forceDelete",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentTypePolicy;\n\nclass DocumentTypePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentTypePolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentTypePolicy@forceDelete is PROOF_READY but no test file at tests/Unit/DocumentTypePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::restore",
        "fqmn": "App\\Policies\\DocumentTypePolicy@restore",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentTypePolicy;\n\nclass DocumentTypePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentTypePolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentTypePolicy@restore is PROOF_READY but no test file at tests/Unit/DocumentTypePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::update",
        "fqmn": "App\\Policies\\DocumentTypePolicy@update",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentTypePolicy;\n\nclass DocumentTypePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentTypePolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentTypePolicy@update is PROOF_READY but no test file at tests/Unit/DocumentTypePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::view",
        "fqmn": "App\\Policies\\DocumentTypePolicy@view",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentTypePolicy;\n\nclass DocumentTypePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentTypePolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentTypePolicy@view is PROOF_READY but no test file at tests/Unit/DocumentTypePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentTypePolicy.php::App\\Policies\\DocumentTypePolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentTypePolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentTypePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentTypePolicy;\n\nclass DocumentTypePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentTypePolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentTypePolicy@viewAny is PROOF_READY but no test file at tests/Unit/DocumentTypePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::create",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@create",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentVersionPolicy;\n\nclass DocumentVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentVersionPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentVersionPolicy@create is PROOF_READY but no test file at tests/Unit/DocumentVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::delete",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@delete",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentVersionPolicy;\n\nclass DocumentVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentVersionPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentVersionPolicy@delete is PROOF_READY but no test file at tests/Unit/DocumentVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::review",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@review",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentVersionPolicy;\n\nclass DocumentVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentVersionPolicy@review\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_review_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentVersionPolicy@review is PROOF_READY but no test file at tests/Unit/DocumentVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::update",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@update",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentVersionPolicy;\n\nclass DocumentVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentVersionPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentVersionPolicy@update is PROOF_READY but no test file at tests/Unit/DocumentVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::view",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@view",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentVersionPolicy;\n\nclass DocumentVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentVersionPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentVersionPolicy@view is PROOF_READY but no test file at tests/Unit/DocumentVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DocumentVersionPolicy.php::App\\Policies\\DocumentVersionPolicy::viewAny",
        "fqmn": "App\\Policies\\DocumentVersionPolicy@viewAny",
        "expected_test_path": "tests/Unit/DocumentVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DocumentVersionPolicy;\n\nclass DocumentVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DocumentVersionPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DocumentVersionPolicy@viewAny is PROOF_READY but no test file at tests/Unit/DocumentVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::create",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@create",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DunningPolicyPolicy;\n\nclass DunningPolicyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DunningPolicyPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DunningPolicyPolicy@create is PROOF_READY but no test file at tests/Unit/DunningPolicyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::delete",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@delete",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DunningPolicyPolicy;\n\nclass DunningPolicyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DunningPolicyPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DunningPolicyPolicy@delete is PROOF_READY but no test file at tests/Unit/DunningPolicyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::deleteAny",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@deleteAny",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DunningPolicyPolicy;\n\nclass DunningPolicyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DunningPolicyPolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DunningPolicyPolicy@deleteAny is PROOF_READY but no test file at tests/Unit/DunningPolicyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::forceDelete",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@forceDelete",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DunningPolicyPolicy;\n\nclass DunningPolicyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DunningPolicyPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DunningPolicyPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/DunningPolicyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::restore",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@restore",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DunningPolicyPolicy;\n\nclass DunningPolicyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DunningPolicyPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DunningPolicyPolicy@restore is PROOF_READY but no test file at tests/Unit/DunningPolicyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::update",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@update",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DunningPolicyPolicy;\n\nclass DunningPolicyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DunningPolicyPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DunningPolicyPolicy@update is PROOF_READY but no test file at tests/Unit/DunningPolicyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::view",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@view",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DunningPolicyPolicy;\n\nclass DunningPolicyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DunningPolicyPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DunningPolicyPolicy@view is PROOF_READY but no test file at tests/Unit/DunningPolicyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/DunningPolicyPolicy.php::App\\Policies\\DunningPolicyPolicy::viewAny",
        "fqmn": "App\\Policies\\DunningPolicyPolicy@viewAny",
        "expected_test_path": "tests/Unit/DunningPolicyPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\DunningPolicyPolicy;\n\nclass DunningPolicyPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\DunningPolicyPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\DunningPolicyPolicy@viewAny is PROOF_READY but no test file at tests/Unit/DunningPolicyPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::create",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@create",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\EmailTemplatePolicy;\n\nclass EmailTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\EmailTemplatePolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\EmailTemplatePolicy@create is PROOF_READY but no test file at tests/Unit/EmailTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::delete",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@delete",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\EmailTemplatePolicy;\n\nclass EmailTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\EmailTemplatePolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\EmailTemplatePolicy@delete is PROOF_READY but no test file at tests/Unit/EmailTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::update",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@update",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\EmailTemplatePolicy;\n\nclass EmailTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\EmailTemplatePolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\EmailTemplatePolicy@update is PROOF_READY but no test file at tests/Unit/EmailTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::view",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@view",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\EmailTemplatePolicy;\n\nclass EmailTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\EmailTemplatePolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\EmailTemplatePolicy@view is PROOF_READY but no test file at tests/Unit/EmailTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/EmailTemplatePolicy.php::App\\Policies\\EmailTemplatePolicy::viewAny",
        "fqmn": "App\\Policies\\EmailTemplatePolicy@viewAny",
        "expected_test_path": "tests/Unit/EmailTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\EmailTemplatePolicy;\n\nclass EmailTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\EmailTemplatePolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\EmailTemplatePolicy@viewAny is PROOF_READY but no test file at tests/Unit/EmailTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::create",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@create",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\FieldDefinitionPolicy;\n\nclass FieldDefinitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FieldDefinitionPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\FieldDefinitionPolicy@create is PROOF_READY but no test file at tests/Unit/FieldDefinitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::delete",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@delete",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\FieldDefinitionPolicy;\n\nclass FieldDefinitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FieldDefinitionPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\FieldDefinitionPolicy@delete is PROOF_READY but no test file at tests/Unit/FieldDefinitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::forceDelete",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\FieldDefinitionPolicy;\n\nclass FieldDefinitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FieldDefinitionPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\FieldDefinitionPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/FieldDefinitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::restore",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@restore",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\FieldDefinitionPolicy;\n\nclass FieldDefinitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FieldDefinitionPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\FieldDefinitionPolicy@restore is PROOF_READY but no test file at tests/Unit/FieldDefinitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::update",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@update",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\FieldDefinitionPolicy;\n\nclass FieldDefinitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FieldDefinitionPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\FieldDefinitionPolicy@update is PROOF_READY but no test file at tests/Unit/FieldDefinitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::view",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@view",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\FieldDefinitionPolicy;\n\nclass FieldDefinitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FieldDefinitionPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\FieldDefinitionPolicy@view is PROOF_READY but no test file at tests/Unit/FieldDefinitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/FieldDefinitionPolicy.php::App\\Policies\\FieldDefinitionPolicy::viewAny",
        "fqmn": "App\\Policies\\FieldDefinitionPolicy@viewAny",
        "expected_test_path": "tests/Unit/FieldDefinitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\FieldDefinitionPolicy;\n\nclass FieldDefinitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\FieldDefinitionPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\FieldDefinitionPolicy@viewAny is PROOF_READY but no test file at tests/Unit/FieldDefinitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::before",
        "fqmn": "App\\Policies\\JobPostingPolicy@before",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobPostingPolicy;\n\nclass JobPostingPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobPostingPolicy@before\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_before_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobPostingPolicy@before is PROOF_READY but no test file at tests/Unit/JobPostingPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::create",
        "fqmn": "App\\Policies\\JobPostingPolicy@create",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobPostingPolicy;\n\nclass JobPostingPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobPostingPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobPostingPolicy@create is PROOF_READY but no test file at tests/Unit/JobPostingPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::delete",
        "fqmn": "App\\Policies\\JobPostingPolicy@delete",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobPostingPolicy;\n\nclass JobPostingPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobPostingPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobPostingPolicy@delete is PROOF_READY but no test file at tests/Unit/JobPostingPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::update",
        "fqmn": "App\\Policies\\JobPostingPolicy@update",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobPostingPolicy;\n\nclass JobPostingPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobPostingPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobPostingPolicy@update is PROOF_READY but no test file at tests/Unit/JobPostingPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::view",
        "fqmn": "App\\Policies\\JobPostingPolicy@view",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobPostingPolicy;\n\nclass JobPostingPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobPostingPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobPostingPolicy@view is PROOF_READY but no test file at tests/Unit/JobPostingPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobPostingPolicy.php::App\\Policies\\JobPostingPolicy::viewAny",
        "fqmn": "App\\Policies\\JobPostingPolicy@viewAny",
        "expected_test_path": "tests/Unit/JobPostingPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobPostingPolicy;\n\nclass JobPostingPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobPostingPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobPostingPolicy@viewAny is PROOF_READY but no test file at tests/Unit/JobPostingPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::before",
        "fqmn": "App\\Policies\\JobReferralPolicy@before",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobReferralPolicy;\n\nclass JobReferralPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobReferralPolicy@before\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_before_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobReferralPolicy@before is PROOF_READY but no test file at tests/Unit/JobReferralPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::create",
        "fqmn": "App\\Policies\\JobReferralPolicy@create",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobReferralPolicy;\n\nclass JobReferralPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobReferralPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobReferralPolicy@create is PROOF_READY but no test file at tests/Unit/JobReferralPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::update",
        "fqmn": "App\\Policies\\JobReferralPolicy@update",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobReferralPolicy;\n\nclass JobReferralPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobReferralPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobReferralPolicy@update is PROOF_READY but no test file at tests/Unit/JobReferralPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::view",
        "fqmn": "App\\Policies\\JobReferralPolicy@view",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobReferralPolicy;\n\nclass JobReferralPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobReferralPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobReferralPolicy@view is PROOF_READY but no test file at tests/Unit/JobReferralPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/JobReferralPolicy.php::App\\Policies\\JobReferralPolicy::viewAny",
        "fqmn": "App\\Policies\\JobReferralPolicy@viewAny",
        "expected_test_path": "tests/Unit/JobReferralPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\JobReferralPolicy;\n\nclass JobReferralPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\JobReferralPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\JobReferralPolicy@viewAny is PROOF_READY but no test file at tests/Unit/JobReferralPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::create",
        "fqmn": "App\\Policies\\KieTemplatePolicy@create",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\KieTemplatePolicy;\n\nclass KieTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\KieTemplatePolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\KieTemplatePolicy@create is PROOF_READY but no test file at tests/Unit/KieTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::delete",
        "fqmn": "App\\Policies\\KieTemplatePolicy@delete",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\KieTemplatePolicy;\n\nclass KieTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\KieTemplatePolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\KieTemplatePolicy@delete is PROOF_READY but no test file at tests/Unit/KieTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::forceDelete",
        "fqmn": "App\\Policies\\KieTemplatePolicy@forceDelete",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\KieTemplatePolicy;\n\nclass KieTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\KieTemplatePolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\KieTemplatePolicy@forceDelete is PROOF_READY but no test file at tests/Unit/KieTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::restore",
        "fqmn": "App\\Policies\\KieTemplatePolicy@restore",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\KieTemplatePolicy;\n\nclass KieTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\KieTemplatePolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\KieTemplatePolicy@restore is PROOF_READY but no test file at tests/Unit/KieTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::update",
        "fqmn": "App\\Policies\\KieTemplatePolicy@update",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\KieTemplatePolicy;\n\nclass KieTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\KieTemplatePolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\KieTemplatePolicy@update is PROOF_READY but no test file at tests/Unit/KieTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::view",
        "fqmn": "App\\Policies\\KieTemplatePolicy@view",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\KieTemplatePolicy;\n\nclass KieTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\KieTemplatePolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\KieTemplatePolicy@view is PROOF_READY but no test file at tests/Unit/KieTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/KieTemplatePolicy.php::App\\Policies\\KieTemplatePolicy::viewAny",
        "fqmn": "App\\Policies\\KieTemplatePolicy@viewAny",
        "expected_test_path": "tests/Unit/KieTemplatePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\KieTemplatePolicy;\n\nclass KieTemplatePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\KieTemplatePolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\KieTemplatePolicy@viewAny is PROOF_READY but no test file at tests/Unit/KieTemplatePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::create",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@create",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\NotificationFailurePolicy;\n\nclass NotificationFailurePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\NotificationFailurePolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\NotificationFailurePolicy@create is PROOF_READY but no test file at tests/Unit/NotificationFailurePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::delete",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@delete",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\NotificationFailurePolicy;\n\nclass NotificationFailurePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\NotificationFailurePolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\NotificationFailurePolicy@delete is PROOF_READY but no test file at tests/Unit/NotificationFailurePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::deleteAny",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@deleteAny",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\NotificationFailurePolicy;\n\nclass NotificationFailurePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\NotificationFailurePolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\NotificationFailurePolicy@deleteAny is PROOF_READY but no test file at tests/Unit/NotificationFailurePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::forceDelete",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@forceDelete",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\NotificationFailurePolicy;\n\nclass NotificationFailurePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\NotificationFailurePolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\NotificationFailurePolicy@forceDelete is PROOF_READY but no test file at tests/Unit/NotificationFailurePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::restore",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@restore",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\NotificationFailurePolicy;\n\nclass NotificationFailurePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\NotificationFailurePolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\NotificationFailurePolicy@restore is PROOF_READY but no test file at tests/Unit/NotificationFailurePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::update",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@update",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\NotificationFailurePolicy;\n\nclass NotificationFailurePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\NotificationFailurePolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\NotificationFailurePolicy@update is PROOF_READY but no test file at tests/Unit/NotificationFailurePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::view",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@view",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\NotificationFailurePolicy;\n\nclass NotificationFailurePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\NotificationFailurePolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\NotificationFailurePolicy@view is PROOF_READY but no test file at tests/Unit/NotificationFailurePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/NotificationFailurePolicy.php::App\\Policies\\NotificationFailurePolicy::viewAny",
        "fqmn": "App\\Policies\\NotificationFailurePolicy@viewAny",
        "expected_test_path": "tests/Unit/NotificationFailurePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\NotificationFailurePolicy;\n\nclass NotificationFailurePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\NotificationFailurePolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\NotificationFailurePolicy@viewAny is PROOF_READY but no test file at tests/Unit/NotificationFailurePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::create",
        "fqmn": "App\\Policies\\OrderPolicy@create",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderPolicy;\n\nclass OrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderPolicy@create is PROOF_READY but no test file at tests/Unit/OrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::delete",
        "fqmn": "App\\Policies\\OrderPolicy@delete",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderPolicy;\n\nclass OrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderPolicy@delete is PROOF_READY but no test file at tests/Unit/OrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::forceDelete",
        "fqmn": "App\\Policies\\OrderPolicy@forceDelete",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderPolicy;\n\nclass OrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/OrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::restore",
        "fqmn": "App\\Policies\\OrderPolicy@restore",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderPolicy;\n\nclass OrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderPolicy@restore is PROOF_READY but no test file at tests/Unit/OrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::update",
        "fqmn": "App\\Policies\\OrderPolicy@update",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderPolicy;\n\nclass OrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderPolicy@update is PROOF_READY but no test file at tests/Unit/OrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::view",
        "fqmn": "App\\Policies\\OrderPolicy@view",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderPolicy;\n\nclass OrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderPolicy@view is PROOF_READY but no test file at tests/Unit/OrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderPolicy.php::App\\Policies\\OrderPolicy::viewAny",
        "fqmn": "App\\Policies\\OrderPolicy@viewAny",
        "expected_test_path": "tests/Unit/OrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderPolicy;\n\nclass OrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderPolicy@viewAny is PROOF_READY but no test file at tests/Unit/OrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::create",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@create",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderVendorPosPolicy;\n\nclass OrderVendorPosPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderVendorPosPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderVendorPosPolicy@create is PROOF_READY but no test file at tests/Unit/OrderVendorPosPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::delete",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@delete",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderVendorPosPolicy;\n\nclass OrderVendorPosPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderVendorPosPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderVendorPosPolicy@delete is PROOF_READY but no test file at tests/Unit/OrderVendorPosPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::forceDelete",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@forceDelete",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderVendorPosPolicy;\n\nclass OrderVendorPosPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderVendorPosPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderVendorPosPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/OrderVendorPosPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::restore",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@restore",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderVendorPosPolicy;\n\nclass OrderVendorPosPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderVendorPosPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderVendorPosPolicy@restore is PROOF_READY but no test file at tests/Unit/OrderVendorPosPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::update",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@update",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderVendorPosPolicy;\n\nclass OrderVendorPosPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderVendorPosPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderVendorPosPolicy@update is PROOF_READY but no test file at tests/Unit/OrderVendorPosPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::view",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@view",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderVendorPosPolicy;\n\nclass OrderVendorPosPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderVendorPosPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderVendorPosPolicy@view is PROOF_READY but no test file at tests/Unit/OrderVendorPosPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/OrderVendorPosPolicy.php::App\\Policies\\OrderVendorPosPolicy::viewAny",
        "fqmn": "App\\Policies\\OrderVendorPosPolicy@viewAny",
        "expected_test_path": "tests/Unit/OrderVendorPosPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\OrderVendorPosPolicy;\n\nclass OrderVendorPosPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\OrderVendorPosPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\OrderVendorPosPolicy@viewAny is PROOF_READY but no test file at tests/Unit/OrderVendorPosPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::create",
        "fqmn": "App\\Policies\\PayoutPolicy@create",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PayoutPolicy;\n\nclass PayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PayoutPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PayoutPolicy@create is PROOF_READY but no test file at tests/Unit/PayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::delete",
        "fqmn": "App\\Policies\\PayoutPolicy@delete",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PayoutPolicy;\n\nclass PayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PayoutPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PayoutPolicy@delete is PROOF_READY but no test file at tests/Unit/PayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::forceDelete",
        "fqmn": "App\\Policies\\PayoutPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PayoutPolicy;\n\nclass PayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PayoutPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PayoutPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/PayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::restore",
        "fqmn": "App\\Policies\\PayoutPolicy@restore",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PayoutPolicy;\n\nclass PayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PayoutPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PayoutPolicy@restore is PROOF_READY but no test file at tests/Unit/PayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::update",
        "fqmn": "App\\Policies\\PayoutPolicy@update",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PayoutPolicy;\n\nclass PayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PayoutPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PayoutPolicy@update is PROOF_READY but no test file at tests/Unit/PayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::view",
        "fqmn": "App\\Policies\\PayoutPolicy@view",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PayoutPolicy;\n\nclass PayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PayoutPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PayoutPolicy@view is PROOF_READY but no test file at tests/Unit/PayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PayoutPolicy.php::App\\Policies\\PayoutPolicy::viewAny",
        "fqmn": "App\\Policies\\PayoutPolicy@viewAny",
        "expected_test_path": "tests/Unit/PayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PayoutPolicy;\n\nclass PayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PayoutPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PayoutPolicy@viewAny is PROOF_READY but no test file at tests/Unit/PayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::create",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@create",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PendingInvariantPatchPolicy;\n\nclass PendingInvariantPatchPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PendingInvariantPatchPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PendingInvariantPatchPolicy@create is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::delete",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@delete",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PendingInvariantPatchPolicy;\n\nclass PendingInvariantPatchPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PendingInvariantPatchPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PendingInvariantPatchPolicy@delete is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::deleteAny",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@deleteAny",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PendingInvariantPatchPolicy;\n\nclass PendingInvariantPatchPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PendingInvariantPatchPolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PendingInvariantPatchPolicy@deleteAny is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::forceDelete",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PendingInvariantPatchPolicy;\n\nclass PendingInvariantPatchPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PendingInvariantPatchPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PendingInvariantPatchPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::restore",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@restore",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PendingInvariantPatchPolicy;\n\nclass PendingInvariantPatchPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PendingInvariantPatchPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PendingInvariantPatchPolicy@restore is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::update",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@update",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PendingInvariantPatchPolicy;\n\nclass PendingInvariantPatchPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PendingInvariantPatchPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PendingInvariantPatchPolicy@update is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::view",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@view",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PendingInvariantPatchPolicy;\n\nclass PendingInvariantPatchPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PendingInvariantPatchPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PendingInvariantPatchPolicy@view is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PendingInvariantPatchPolicy.php::App\\Policies\\PendingInvariantPatchPolicy::viewAny",
        "fqmn": "App\\Policies\\PendingInvariantPatchPolicy@viewAny",
        "expected_test_path": "tests/Unit/PendingInvariantPatchPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PendingInvariantPatchPolicy;\n\nclass PendingInvariantPatchPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PendingInvariantPatchPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PendingInvariantPatchPolicy@viewAny is PROOF_READY but no test file at tests/Unit/PendingInvariantPatchPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::create",
        "fqmn": "App\\Policies\\PlanPolicy@create",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanPolicy;\n\nclass PlanPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanPolicy@create is PROOF_READY but no test file at tests/Unit/PlanPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::delete",
        "fqmn": "App\\Policies\\PlanPolicy@delete",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanPolicy;\n\nclass PlanPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanPolicy@delete is PROOF_READY but no test file at tests/Unit/PlanPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::forceDelete",
        "fqmn": "App\\Policies\\PlanPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanPolicy;\n\nclass PlanPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/PlanPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::restore",
        "fqmn": "App\\Policies\\PlanPolicy@restore",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanPolicy;\n\nclass PlanPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanPolicy@restore is PROOF_READY but no test file at tests/Unit/PlanPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::update",
        "fqmn": "App\\Policies\\PlanPolicy@update",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanPolicy;\n\nclass PlanPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanPolicy@update is PROOF_READY but no test file at tests/Unit/PlanPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::view",
        "fqmn": "App\\Policies\\PlanPolicy@view",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanPolicy;\n\nclass PlanPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanPolicy@view is PROOF_READY but no test file at tests/Unit/PlanPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanPolicy.php::App\\Policies\\PlanPolicy::viewAny",
        "fqmn": "App\\Policies\\PlanPolicy@viewAny",
        "expected_test_path": "tests/Unit/PlanPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanPolicy;\n\nclass PlanPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanPolicy@viewAny is PROOF_READY but no test file at tests/Unit/PlanPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::create",
        "fqmn": "App\\Policies\\PlanVersionPolicy@create",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanVersionPolicy;\n\nclass PlanVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanVersionPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanVersionPolicy@create is PROOF_READY but no test file at tests/Unit/PlanVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::delete",
        "fqmn": "App\\Policies\\PlanVersionPolicy@delete",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanVersionPolicy;\n\nclass PlanVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanVersionPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanVersionPolicy@delete is PROOF_READY but no test file at tests/Unit/PlanVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::deleteAny",
        "fqmn": "App\\Policies\\PlanVersionPolicy@deleteAny",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanVersionPolicy;\n\nclass PlanVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanVersionPolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanVersionPolicy@deleteAny is PROOF_READY but no test file at tests/Unit/PlanVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::forceDelete",
        "fqmn": "App\\Policies\\PlanVersionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanVersionPolicy;\n\nclass PlanVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanVersionPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanVersionPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/PlanVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::restore",
        "fqmn": "App\\Policies\\PlanVersionPolicy@restore",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanVersionPolicy;\n\nclass PlanVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanVersionPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanVersionPolicy@restore is PROOF_READY but no test file at tests/Unit/PlanVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::update",
        "fqmn": "App\\Policies\\PlanVersionPolicy@update",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanVersionPolicy;\n\nclass PlanVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanVersionPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanVersionPolicy@update is PROOF_READY but no test file at tests/Unit/PlanVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::view",
        "fqmn": "App\\Policies\\PlanVersionPolicy@view",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanVersionPolicy;\n\nclass PlanVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanVersionPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanVersionPolicy@view is PROOF_READY but no test file at tests/Unit/PlanVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PlanVersionPolicy.php::App\\Policies\\PlanVersionPolicy::viewAny",
        "fqmn": "App\\Policies\\PlanVersionPolicy@viewAny",
        "expected_test_path": "tests/Unit/PlanVersionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PlanVersionPolicy;\n\nclass PlanVersionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PlanVersionPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PlanVersionPolicy@viewAny is PROOF_READY but no test file at tests/Unit/PlanVersionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::create",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@create",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PointsTransactionPolicy;\n\nclass PointsTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PointsTransactionPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PointsTransactionPolicy@create is PROOF_READY but no test file at tests/Unit/PointsTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::delete",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@delete",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PointsTransactionPolicy;\n\nclass PointsTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PointsTransactionPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PointsTransactionPolicy@delete is PROOF_READY but no test file at tests/Unit/PointsTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::forceDelete",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PointsTransactionPolicy;\n\nclass PointsTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PointsTransactionPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PointsTransactionPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/PointsTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::restore",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@restore",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PointsTransactionPolicy;\n\nclass PointsTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PointsTransactionPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PointsTransactionPolicy@restore is PROOF_READY but no test file at tests/Unit/PointsTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::update",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@update",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PointsTransactionPolicy;\n\nclass PointsTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PointsTransactionPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PointsTransactionPolicy@update is PROOF_READY but no test file at tests/Unit/PointsTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::view",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@view",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PointsTransactionPolicy;\n\nclass PointsTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PointsTransactionPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PointsTransactionPolicy@view is PROOF_READY but no test file at tests/Unit/PointsTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/PointsTransactionPolicy.php::App\\Policies\\PointsTransactionPolicy::viewAny",
        "fqmn": "App\\Policies\\PointsTransactionPolicy@viewAny",
        "expected_test_path": "tests/Unit/PointsTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\PointsTransactionPolicy;\n\nclass PointsTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\PointsTransactionPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\PointsTransactionPolicy@viewAny is PROOF_READY but no test file at tests/Unit/PointsTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::create",
        "fqmn": "App\\Policies\\RecognitionPolicy@create",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RecognitionPolicy;\n\nclass RecognitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RecognitionPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RecognitionPolicy@create is PROOF_READY but no test file at tests/Unit/RecognitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::delete",
        "fqmn": "App\\Policies\\RecognitionPolicy@delete",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RecognitionPolicy;\n\nclass RecognitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RecognitionPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RecognitionPolicy@delete is PROOF_READY but no test file at tests/Unit/RecognitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::deleteAny",
        "fqmn": "App\\Policies\\RecognitionPolicy@deleteAny",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RecognitionPolicy;\n\nclass RecognitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RecognitionPolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RecognitionPolicy@deleteAny is PROOF_READY but no test file at tests/Unit/RecognitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::forceDelete",
        "fqmn": "App\\Policies\\RecognitionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RecognitionPolicy;\n\nclass RecognitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RecognitionPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RecognitionPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/RecognitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::restore",
        "fqmn": "App\\Policies\\RecognitionPolicy@restore",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RecognitionPolicy;\n\nclass RecognitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RecognitionPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RecognitionPolicy@restore is PROOF_READY but no test file at tests/Unit/RecognitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::update",
        "fqmn": "App\\Policies\\RecognitionPolicy@update",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RecognitionPolicy;\n\nclass RecognitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RecognitionPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RecognitionPolicy@update is PROOF_READY but no test file at tests/Unit/RecognitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::view",
        "fqmn": "App\\Policies\\RecognitionPolicy@view",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RecognitionPolicy;\n\nclass RecognitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RecognitionPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RecognitionPolicy@view is PROOF_READY but no test file at tests/Unit/RecognitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RecognitionPolicy.php::App\\Policies\\RecognitionPolicy::viewAny",
        "fqmn": "App\\Policies\\RecognitionPolicy@viewAny",
        "expected_test_path": "tests/Unit/RecognitionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RecognitionPolicy;\n\nclass RecognitionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RecognitionPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RecognitionPolicy@viewAny is PROOF_READY but no test file at tests/Unit/RecognitionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::create",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@create",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RefreshmentPresetPolicy;\n\nclass RefreshmentPresetPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RefreshmentPresetPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RefreshmentPresetPolicy@create is PROOF_READY but no test file at tests/Unit/RefreshmentPresetPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::delete",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@delete",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RefreshmentPresetPolicy;\n\nclass RefreshmentPresetPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RefreshmentPresetPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RefreshmentPresetPolicy@delete is PROOF_READY but no test file at tests/Unit/RefreshmentPresetPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::deleteAny",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@deleteAny",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RefreshmentPresetPolicy;\n\nclass RefreshmentPresetPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RefreshmentPresetPolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RefreshmentPresetPolicy@deleteAny is PROOF_READY but no test file at tests/Unit/RefreshmentPresetPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::forceDelete",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@forceDelete",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RefreshmentPresetPolicy;\n\nclass RefreshmentPresetPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RefreshmentPresetPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RefreshmentPresetPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/RefreshmentPresetPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::restore",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@restore",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RefreshmentPresetPolicy;\n\nclass RefreshmentPresetPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RefreshmentPresetPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RefreshmentPresetPolicy@restore is PROOF_READY but no test file at tests/Unit/RefreshmentPresetPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::update",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@update",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RefreshmentPresetPolicy;\n\nclass RefreshmentPresetPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RefreshmentPresetPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RefreshmentPresetPolicy@update is PROOF_READY but no test file at tests/Unit/RefreshmentPresetPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::view",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@view",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RefreshmentPresetPolicy;\n\nclass RefreshmentPresetPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RefreshmentPresetPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RefreshmentPresetPolicy@view is PROOF_READY but no test file at tests/Unit/RefreshmentPresetPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/RefreshmentPresetPolicy.php::App\\Policies\\RefreshmentPresetPolicy::viewAny",
        "fqmn": "App\\Policies\\RefreshmentPresetPolicy@viewAny",
        "expected_test_path": "tests/Unit/RefreshmentPresetPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\RefreshmentPresetPolicy;\n\nclass RefreshmentPresetPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\RefreshmentPresetPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\RefreshmentPresetPolicy@viewAny is PROOF_READY but no test file at tests/Unit/RefreshmentPresetPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ReminderPolicy.php::App\\Policies\\ReminderPolicy::delete",
        "fqmn": "App\\Policies\\ReminderPolicy@delete",
        "expected_test_path": "tests/Unit/ReminderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ReminderPolicy;\n\nclass ReminderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ReminderPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ReminderPolicy@delete is PROOF_READY but no test file at tests/Unit/ReminderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ReminderPolicy.php::App\\Policies\\ReminderPolicy::update",
        "fqmn": "App\\Policies\\ReminderPolicy@update",
        "expected_test_path": "tests/Unit/ReminderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ReminderPolicy;\n\nclass ReminderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ReminderPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ReminderPolicy@update is PROOF_READY but no test file at tests/Unit/ReminderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ReminderPolicy.php::App\\Policies\\ReminderPolicy::view",
        "fqmn": "App\\Policies\\ReminderPolicy@view",
        "expected_test_path": "tests/Unit/ReminderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ReminderPolicy;\n\nclass ReminderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ReminderPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ReminderPolicy@view is PROOF_READY but no test file at tests/Unit/ReminderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::create",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@create",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SubscriptionAccountingDriftPolicy;\n\nclass SubscriptionAccountingDriftPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SubscriptionAccountingDriftPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SubscriptionAccountingDriftPolicy@create is PROOF_READY but no test file at tests/Unit/SubscriptionAccountingDriftPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::delete",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@delete",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SubscriptionAccountingDriftPolicy;\n\nclass SubscriptionAccountingDriftPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SubscriptionAccountingDriftPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SubscriptionAccountingDriftPolicy@delete is PROOF_READY but no test file at tests/Unit/SubscriptionAccountingDriftPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::deleteAny",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@deleteAny",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SubscriptionAccountingDriftPolicy;\n\nclass SubscriptionAccountingDriftPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SubscriptionAccountingDriftPolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SubscriptionAccountingDriftPolicy@deleteAny is PROOF_READY but no test file at tests/Unit/SubscriptionAccountingDriftPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::forceDelete",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@forceDelete",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SubscriptionAccountingDriftPolicy;\n\nclass SubscriptionAccountingDriftPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SubscriptionAccountingDriftPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SubscriptionAccountingDriftPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/SubscriptionAccountingDriftPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::restore",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@restore",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SubscriptionAccountingDriftPolicy;\n\nclass SubscriptionAccountingDriftPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SubscriptionAccountingDriftPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SubscriptionAccountingDriftPolicy@restore is PROOF_READY but no test file at tests/Unit/SubscriptionAccountingDriftPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::update",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@update",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SubscriptionAccountingDriftPolicy;\n\nclass SubscriptionAccountingDriftPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SubscriptionAccountingDriftPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SubscriptionAccountingDriftPolicy@update is PROOF_READY but no test file at tests/Unit/SubscriptionAccountingDriftPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::view",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@view",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SubscriptionAccountingDriftPolicy;\n\nclass SubscriptionAccountingDriftPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SubscriptionAccountingDriftPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SubscriptionAccountingDriftPolicy@view is PROOF_READY but no test file at tests/Unit/SubscriptionAccountingDriftPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SubscriptionAccountingDriftPolicy.php::App\\Policies\\SubscriptionAccountingDriftPolicy::viewAny",
        "fqmn": "App\\Policies\\SubscriptionAccountingDriftPolicy@viewAny",
        "expected_test_path": "tests/Unit/SubscriptionAccountingDriftPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SubscriptionAccountingDriftPolicy;\n\nclass SubscriptionAccountingDriftPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SubscriptionAccountingDriftPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SubscriptionAccountingDriftPolicy@viewAny is PROOF_READY but no test file at tests/Unit/SubscriptionAccountingDriftPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::create",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@create",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierOrderPolicy;\n\nclass SupplierOrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierOrderPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierOrderPolicy@create is PROOF_READY but no test file at tests/Unit/SupplierOrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::delete",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@delete",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierOrderPolicy;\n\nclass SupplierOrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierOrderPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierOrderPolicy@delete is PROOF_READY but no test file at tests/Unit/SupplierOrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::forceDelete",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@forceDelete",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierOrderPolicy;\n\nclass SupplierOrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierOrderPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierOrderPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/SupplierOrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::restore",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@restore",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierOrderPolicy;\n\nclass SupplierOrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierOrderPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierOrderPolicy@restore is PROOF_READY but no test file at tests/Unit/SupplierOrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::update",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@update",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierOrderPolicy;\n\nclass SupplierOrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierOrderPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierOrderPolicy@update is PROOF_READY but no test file at tests/Unit/SupplierOrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::view",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@view",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierOrderPolicy;\n\nclass SupplierOrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierOrderPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierOrderPolicy@view is PROOF_READY but no test file at tests/Unit/SupplierOrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierOrderPolicy.php::App\\Policies\\SupplierOrderPolicy::viewAny",
        "fqmn": "App\\Policies\\SupplierOrderPolicy@viewAny",
        "expected_test_path": "tests/Unit/SupplierOrderPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierOrderPolicy;\n\nclass SupplierOrderPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierOrderPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierOrderPolicy@viewAny is PROOF_READY but no test file at tests/Unit/SupplierOrderPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::create",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@create",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierPayoutPolicy;\n\nclass SupplierPayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierPayoutPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierPayoutPolicy@create is PROOF_READY but no test file at tests/Unit/SupplierPayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::delete",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@delete",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierPayoutPolicy;\n\nclass SupplierPayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierPayoutPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierPayoutPolicy@delete is PROOF_READY but no test file at tests/Unit/SupplierPayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::forceDelete",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@forceDelete",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierPayoutPolicy;\n\nclass SupplierPayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierPayoutPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierPayoutPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/SupplierPayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::restore",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@restore",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierPayoutPolicy;\n\nclass SupplierPayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierPayoutPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierPayoutPolicy@restore is PROOF_READY but no test file at tests/Unit/SupplierPayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::update",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@update",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierPayoutPolicy;\n\nclass SupplierPayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierPayoutPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierPayoutPolicy@update is PROOF_READY but no test file at tests/Unit/SupplierPayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::view",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@view",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierPayoutPolicy;\n\nclass SupplierPayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierPayoutPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierPayoutPolicy@view is PROOF_READY but no test file at tests/Unit/SupplierPayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/SupplierPayoutPolicy.php::App\\Policies\\SupplierPayoutPolicy::viewAny",
        "fqmn": "App\\Policies\\SupplierPayoutPolicy@viewAny",
        "expected_test_path": "tests/Unit/SupplierPayoutPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\SupplierPayoutPolicy;\n\nclass SupplierPayoutPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\SupplierPayoutPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\SupplierPayoutPolicy@viewAny is PROOF_READY but no test file at tests/Unit/SupplierPayoutPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::create",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@create",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TapSettlementJournalEntryPolicy;\n\nclass TapSettlementJournalEntryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TapSettlementJournalEntryPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TapSettlementJournalEntryPolicy@create is PROOF_READY but no test file at tests/Unit/TapSettlementJournalEntryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::delete",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@delete",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TapSettlementJournalEntryPolicy;\n\nclass TapSettlementJournalEntryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TapSettlementJournalEntryPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TapSettlementJournalEntryPolicy@delete is PROOF_READY but no test file at tests/Unit/TapSettlementJournalEntryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::deleteAny",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@deleteAny",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TapSettlementJournalEntryPolicy;\n\nclass TapSettlementJournalEntryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TapSettlementJournalEntryPolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TapSettlementJournalEntryPolicy@deleteAny is PROOF_READY but no test file at tests/Unit/TapSettlementJournalEntryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::forceDelete",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@forceDelete",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TapSettlementJournalEntryPolicy;\n\nclass TapSettlementJournalEntryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TapSettlementJournalEntryPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TapSettlementJournalEntryPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/TapSettlementJournalEntryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::restore",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@restore",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TapSettlementJournalEntryPolicy;\n\nclass TapSettlementJournalEntryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TapSettlementJournalEntryPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TapSettlementJournalEntryPolicy@restore is PROOF_READY but no test file at tests/Unit/TapSettlementJournalEntryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::update",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@update",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TapSettlementJournalEntryPolicy;\n\nclass TapSettlementJournalEntryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TapSettlementJournalEntryPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TapSettlementJournalEntryPolicy@update is PROOF_READY but no test file at tests/Unit/TapSettlementJournalEntryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::view",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@view",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TapSettlementJournalEntryPolicy;\n\nclass TapSettlementJournalEntryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TapSettlementJournalEntryPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TapSettlementJournalEntryPolicy@view is PROOF_READY but no test file at tests/Unit/TapSettlementJournalEntryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TapSettlementJournalEntryPolicy.php::App\\Policies\\TapSettlementJournalEntryPolicy::viewAny",
        "fqmn": "App\\Policies\\TapSettlementJournalEntryPolicy@viewAny",
        "expected_test_path": "tests/Unit/TapSettlementJournalEntryPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TapSettlementJournalEntryPolicy;\n\nclass TapSettlementJournalEntryPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TapSettlementJournalEntryPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TapSettlementJournalEntryPolicy@viewAny is PROOF_READY but no test file at tests/Unit/TapSettlementJournalEntryPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::approve",
        "fqmn": "App\\Policies\\TaskPolicy@approve",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TaskPolicy;\n\nclass TaskPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TaskPolicy@approve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_approve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TaskPolicy@approve is PROOF_READY but no test file at tests/Unit/TaskPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::cancel",
        "fqmn": "App\\Policies\\TaskPolicy@cancel",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TaskPolicy;\n\nclass TaskPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TaskPolicy@cancel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TaskPolicy@cancel is PROOF_READY but no test file at tests/Unit/TaskPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::create",
        "fqmn": "App\\Policies\\TaskPolicy@create",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TaskPolicy;\n\nclass TaskPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TaskPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TaskPolicy@create is PROOF_READY but no test file at tests/Unit/TaskPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::delete",
        "fqmn": "App\\Policies\\TaskPolicy@delete",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TaskPolicy;\n\nclass TaskPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TaskPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TaskPolicy@delete is PROOF_READY but no test file at tests/Unit/TaskPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::manage",
        "fqmn": "App\\Policies\\TaskPolicy@manage",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TaskPolicy;\n\nclass TaskPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TaskPolicy@manage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_manage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TaskPolicy@manage is PROOF_READY but no test file at tests/Unit/TaskPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::update",
        "fqmn": "App\\Policies\\TaskPolicy@update",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TaskPolicy;\n\nclass TaskPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TaskPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TaskPolicy@update is PROOF_READY but no test file at tests/Unit/TaskPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::updateStatusAsReceiver",
        "fqmn": "App\\Policies\\TaskPolicy@updateStatusAsReceiver",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TaskPolicy;\n\nclass TaskPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TaskPolicy@updateStatusAsReceiver\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updatestatusasreceiver_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TaskPolicy@updateStatusAsReceiver is PROOF_READY but no test file at tests/Unit/TaskPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/TaskPolicy.php::App\\Policies\\TaskPolicy::view",
        "fqmn": "App\\Policies\\TaskPolicy@view",
        "expected_test_path": "tests/Unit/TaskPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\TaskPolicy;\n\nclass TaskPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\TaskPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\TaskPolicy@view is PROOF_READY but no test file at tests/Unit/TaskPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::before",
        "fqmn": "App\\Policies\\UserPolicy@before",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@before\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_before_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@before is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::create",
        "fqmn": "App\\Policies\\UserPolicy@create",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@create is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::delete",
        "fqmn": "App\\Policies\\UserPolicy@delete",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@delete is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::detach",
        "fqmn": "App\\Policies\\UserPolicy@detach",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@detach\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detach_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@detach is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::forceDelete",
        "fqmn": "App\\Policies\\UserPolicy@forceDelete",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::restore",
        "fqmn": "App\\Policies\\UserPolicy@restore",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@restore is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::update",
        "fqmn": "App\\Policies\\UserPolicy@update",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@update is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::view",
        "fqmn": "App\\Policies\\UserPolicy@view",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@view is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/UserPolicy.php::App\\Policies\\UserPolicy::viewAny",
        "fqmn": "App\\Policies\\UserPolicy@viewAny",
        "expected_test_path": "tests/Unit/UserPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\UserPolicy;\n\nclass UserPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\UserPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\UserPolicy@viewAny is PROOF_READY but no test file at tests/Unit/UserPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::create",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@create",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletFreezeOverridePolicy;\n\nclass WalletFreezeOverridePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletFreezeOverridePolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletFreezeOverridePolicy@create is PROOF_READY but no test file at tests/Unit/WalletFreezeOverridePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::delete",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@delete",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletFreezeOverridePolicy;\n\nclass WalletFreezeOverridePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletFreezeOverridePolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletFreezeOverridePolicy@delete is PROOF_READY but no test file at tests/Unit/WalletFreezeOverridePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::forceDelete",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@forceDelete",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletFreezeOverridePolicy;\n\nclass WalletFreezeOverridePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletFreezeOverridePolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletFreezeOverridePolicy@forceDelete is PROOF_READY but no test file at tests/Unit/WalletFreezeOverridePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::restore",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@restore",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletFreezeOverridePolicy;\n\nclass WalletFreezeOverridePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletFreezeOverridePolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletFreezeOverridePolicy@restore is PROOF_READY but no test file at tests/Unit/WalletFreezeOverridePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletFreezeOverridePolicy.php::App\\Policies\\WalletFreezeOverridePolicy::update",
        "fqmn": "App\\Policies\\WalletFreezeOverridePolicy@update",
        "expected_test_path": "tests/Unit/WalletFreezeOverridePolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletFreezeOverridePolicy;\n\nclass WalletFreezeOverridePolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletFreezeOverridePolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletFreezeOverridePolicy@update is PROOF_READY but no test file at tests/Unit/WalletFreezeOverridePolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::create",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@create",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletTransactionPolicy;\n\nclass WalletTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletTransactionPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletTransactionPolicy@create is PROOF_READY but no test file at tests/Unit/WalletTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::delete",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@delete",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletTransactionPolicy;\n\nclass WalletTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletTransactionPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletTransactionPolicy@delete is PROOF_READY but no test file at tests/Unit/WalletTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::forceDelete",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@forceDelete",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletTransactionPolicy;\n\nclass WalletTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletTransactionPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletTransactionPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/WalletTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::restore",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@restore",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletTransactionPolicy;\n\nclass WalletTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletTransactionPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletTransactionPolicy@restore is PROOF_READY but no test file at tests/Unit/WalletTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::update",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@update",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletTransactionPolicy;\n\nclass WalletTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletTransactionPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletTransactionPolicy@update is PROOF_READY but no test file at tests/Unit/WalletTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::view",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@view",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletTransactionPolicy;\n\nclass WalletTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletTransactionPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletTransactionPolicy@view is PROOF_READY but no test file at tests/Unit/WalletTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/WalletTransactionPolicy.php::App\\Policies\\WalletTransactionPolicy::viewAny",
        "fqmn": "App\\Policies\\WalletTransactionPolicy@viewAny",
        "expected_test_path": "tests/Unit/WalletTransactionPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\WalletTransactionPolicy;\n\nclass WalletTransactionPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\WalletTransactionPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\WalletTransactionPolicy@viewAny is PROOF_READY but no test file at tests/Unit/WalletTransactionPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::create",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@create",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ZohoDriftEventPolicy;\n\nclass ZohoDriftEventPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ZohoDriftEventPolicy@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ZohoDriftEventPolicy@create is PROOF_READY but no test file at tests/Unit/ZohoDriftEventPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::delete",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@delete",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ZohoDriftEventPolicy;\n\nclass ZohoDriftEventPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ZohoDriftEventPolicy@delete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_delete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ZohoDriftEventPolicy@delete is PROOF_READY but no test file at tests/Unit/ZohoDriftEventPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::deleteAny",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@deleteAny",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ZohoDriftEventPolicy;\n\nclass ZohoDriftEventPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ZohoDriftEventPolicy@deleteAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_deleteany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ZohoDriftEventPolicy@deleteAny is PROOF_READY but no test file at tests/Unit/ZohoDriftEventPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::forceDelete",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@forceDelete",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ZohoDriftEventPolicy;\n\nclass ZohoDriftEventPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ZohoDriftEventPolicy@forceDelete\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcedelete_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ZohoDriftEventPolicy@forceDelete is PROOF_READY but no test file at tests/Unit/ZohoDriftEventPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::restore",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@restore",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ZohoDriftEventPolicy;\n\nclass ZohoDriftEventPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ZohoDriftEventPolicy@restore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_restore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ZohoDriftEventPolicy@restore is PROOF_READY but no test file at tests/Unit/ZohoDriftEventPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::update",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@update",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ZohoDriftEventPolicy;\n\nclass ZohoDriftEventPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ZohoDriftEventPolicy@update\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_update_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ZohoDriftEventPolicy@update is PROOF_READY but no test file at tests/Unit/ZohoDriftEventPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::view",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@view",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ZohoDriftEventPolicy;\n\nclass ZohoDriftEventPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ZohoDriftEventPolicy@view\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_view_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ZohoDriftEventPolicy@view is PROOF_READY but no test file at tests/Unit/ZohoDriftEventPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Poli",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Policies/ZohoDriftEventPolicy.php::App\\Policies\\ZohoDriftEventPolicy::viewAny",
        "fqmn": "App\\Policies\\ZohoDriftEventPolicy@viewAny",
        "expected_test_path": "tests/Unit/ZohoDriftEventPolicyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Policies\\ZohoDriftEventPolicy;\n\nclass ZohoDriftEventPolicyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Policies\\ZohoDriftEventPolicy@viewAny\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_viewany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Policies\\ZohoDriftEventPolicy@viewAny is PROOF_READY but no test file at tests/Unit/ZohoDriftEventPolicyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Ai/ActionOrchestrator.php::App\\Services\\Ai\\ActionOrchestrator::execute",
        "fqmn": "App\\Services\\Ai\\ActionOrchestrator@execute",
        "expected_test_path": "tests/Feature/ActionOrchestratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Ai\\ActionOrchestrator;\n\nclass ActionOrchestratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Ai\\ActionOrchestrator@execute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_execute_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Ai\\ActionOrchestrator@execute is PROOF_READY but no test file at tests/Feature/ActionOrchestratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Ai/AiActionResolver.php::App\\Services\\Ai\\AiActionResolver::resolve",
        "fqmn": "App\\Services\\Ai\\AiActionResolver@resolve",
        "expected_test_path": "tests/Feature/AiActionResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Ai\\AiActionResolver;\n\nclass AiActionResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Ai\\AiActionResolver@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Ai\\AiActionResolver@resolve is PROOF_READY but no test file at tests/Feature/AiActionResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Ai/AiActionResolver.php::App\\Services\\Ai\\AiActionResolver::resolveMany",
        "fqmn": "App\\Services\\Ai\\AiActionResolver@resolveMany",
        "expected_test_path": "tests/Feature/AiActionResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Ai\\AiActionResolver;\n\nclass AiActionResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Ai\\AiActionResolver@resolveMany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvemany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Ai\\AiActionResolver@resolveMany is PROOF_READY but no test file at tests/Feature/AiActionResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Ai/ResolvedAiAction.php::App\\Services\\Ai\\ResolvedAiAction::toArray",
        "fqmn": "App\\Services\\Ai\\ResolvedAiAction@toArray",
        "expected_test_path": "tests/Feature/ResolvedAiActionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Ai\\ResolvedAiAction;\n\nclass ResolvedAiActionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Ai\\ResolvedAiAction@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Ai\\ResolvedAiAction@toArray is PROOF_READY but no test file at tests/Feature/ResolvedAiActionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::referralInsights",
        "fqmn": "App\\Services\\AiClient@referralInsights",
        "expected_test_path": "tests/Feature/AiClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AiClient;\n\nclass AiClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AiClient@referralInsights\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_referralinsights_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AiClient@referralInsights is PROOF_READY but no test file at tests/Feature/AiClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AiClient.php::App\\Services\\AiClient::summarizeRecognitionKpis",
        "fqmn": "App\\Services\\AiClient@summarizeRecognitionKpis",
        "expected_test_path": "tests/Feature/AiClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AiClient;\n\nclass AiClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AiClient@summarizeRecognitionKpis\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_summarizerecognitionkpis_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AiClient@summarizeRecognitionKpis is PROOF_READY but no test file at tests/Feature/AiClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::redactText",
        "fqmn": "App\\Services\\AiSanitizer@redactText",
        "expected_test_path": "tests/Feature/AiSanitizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AiSanitizer;\n\nclass AiSanitizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AiSanitizer@redactText\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_redacttext_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AiSanitizer@redactText is PROOF_READY but no test file at tests/Feature/AiSanitizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::sanitizeLinkedin",
        "fqmn": "App\\Services\\AiSanitizer@sanitizeLinkedin",
        "expected_test_path": "tests/Feature/AiSanitizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AiSanitizer;\n\nclass AiSanitizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AiSanitizer@sanitizeLinkedin\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sanitizelinkedin_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AiSanitizer@sanitizeLinkedin is PROOF_READY but no test file at tests/Feature/AiSanitizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AiSanitizer.php::App\\Services\\AiSanitizer::tokenMapEntities",
        "fqmn": "App\\Services\\AiSanitizer@tokenMapEntities",
        "expected_test_path": "tests/Feature/AiSanitizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AiSanitizer;\n\nclass AiSanitizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AiSanitizer@tokenMapEntities\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tokenmapentities_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\AiSanitizer@tokenMapEntities is PROOF_READY but no test file at tests/Feature/AiSanitizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getCompanyAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getCompanyAnalytics",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AnalyticsService;\n\nclass AnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AnalyticsService@getCompanyAnalytics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcompanyanalytics_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AnalyticsService@getCompanyAnalytics is PROOF_READY but no test file at tests/Feature/AnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getCultureHeatmap",
        "fqmn": "App\\Services\\AnalyticsService@getCultureHeatmap",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AnalyticsService;\n\nclass AnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AnalyticsService@getCultureHeatmap\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcultureheatmap_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\AnalyticsService@getCultureHeatmap is PROOF_READY but no test file at tests/Feature/AnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getGlobalAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getGlobalAnalytics",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AnalyticsService;\n\nclass AnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AnalyticsService@getGlobalAnalytics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getglobalanalytics_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\AnalyticsService@getGlobalAnalytics is PROOF_READY but no test file at tests/Feature/AnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getGlobalCultureHeatmap",
        "fqmn": "App\\Services\\AnalyticsService@getGlobalCultureHeatmap",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AnalyticsService;\n\nclass AnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AnalyticsService@getGlobalCultureHeatmap\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getglobalcultureheatmap_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\AnalyticsService@getGlobalCultureHeatmap is PROOF_READY but no test file at tests/Feature/AnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AnalyticsService.php::App\\Services\\AnalyticsService::getTeamAnalytics",
        "fqmn": "App\\Services\\AnalyticsService@getTeamAnalytics",
        "expected_test_path": "tests/Feature/AnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AnalyticsService;\n\nclass AnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AnalyticsService@getTeamAnalytics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getteamanalytics_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AnalyticsService@getTeamAnalytics is PROOF_READY but no test file at tests/Feature/AnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::cleanupOldLogs",
        "fqmn": "App\\Services\\AuditService@cleanupOldLogs",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@cleanupOldLogs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cleanupoldlogs_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@cleanupOldLogs is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::getAuditSummary",
        "fqmn": "App\\Services\\AuditService@getAuditSummary",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@getAuditSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getauditsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@getAuditSummary is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::log",
        "fqmn": "App\\Services\\AuditService@log",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@log\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_log_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@log is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logContactOperation",
        "fqmn": "App\\Services\\AuditService@logContactOperation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logContactOperation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logcontactoperation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logContactOperation is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logError",
        "fqmn": "App\\Services\\AuditService@logError",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logError\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logerror_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logError is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logInvoiceCreation",
        "fqmn": "App\\Services\\AuditService@logInvoiceCreation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logInvoiceCreation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loginvoicecreation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logInvoiceCreation is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logInvoiceSent",
        "fqmn": "App\\Services\\AuditService@logInvoiceSent",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logInvoiceSent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loginvoicesent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logInvoiceSent is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logPaymentReconciliation",
        "fqmn": "App\\Services\\AuditService@logPaymentReconciliation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logPaymentReconciliation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logpaymentreconciliation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logPaymentReconciliation is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logProductSync",
        "fqmn": "App\\Services\\AuditService@logProductSync",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logProductSync\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logproductsync_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logProductSync is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logPurchaseOrderCreation",
        "fqmn": "App\\Services\\AuditService@logPurchaseOrderCreation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logPurchaseOrderCreation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logpurchaseordercreation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logPurchaseOrderCreation is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logSystemOperation",
        "fqmn": "App\\Services\\AuditService@logSystemOperation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logSystemOperation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logsystemoperation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logSystemOperation is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logValidationFailure",
        "fqmn": "App\\Services\\AuditService@logValidationFailure",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logValidationFailure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logvalidationfailure_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logValidationFailure is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::logZohoOperation",
        "fqmn": "App\\Services\\AuditService@logZohoOperation",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@logZohoOperation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logzohooperation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@logZohoOperation is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/AuditService.php::App\\Services\\AuditService::searchAuditLogs",
        "fqmn": "App\\Services\\AuditService@searchAuditLogs",
        "expected_test_path": "tests/Feature/AuditServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\AuditService;\n\nclass AuditServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\AuditService@searchAuditLogs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_searchauditlogs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\AuditService@searchAuditLogs is PROOF_READY but no test file at tests/Feature/AuditServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Automation/Actions/PurchaseStoreItemResult.php::App\\Services\\Automation\\Actions\\PurchaseStoreItemResult::toArray",
        "fqmn": "App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@toArray",
        "expected_test_path": "tests/Feature/PurchaseStoreItemResultTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Automation\\Actions\\PurchaseStoreItemResult;\n\nclass PurchaseStoreItemResultTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Automation\\Actions\\PurchaseStoreItemResult@toArray is PROOF_READY but no test file at tests/Feature/PurchaseStoreItemResultTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getCultureMomentumIndex",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getCultureMomentumIndex",
        "expected_test_path": "tests/Feature/CultureAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\CultureAnalyticsService;\n\nclass CultureAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\CultureAnalyticsService@getCultureMomentumIndex\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getculturemomentumindex_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\CultureAnalyticsService@getCultureMomentumIndex is PROOF_READY but no test file at tests/Feature/CultureAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getCultureVolatility",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getCultureVolatility",
        "expected_test_path": "tests/Feature/CultureAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\CultureAnalyticsService;\n\nclass CultureAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\CultureAnalyticsService@getCultureVolatility\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getculturevolatility_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\CultureAnalyticsService@getCultureVolatility is PROOF_READY but no test file at tests/Feature/CultureAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/CultureAnalyticsService.php::App\\Services\\Awareness\\CultureAnalyticsService::getSilentDaysMap",
        "fqmn": "App\\Services\\Awareness\\CultureAnalyticsService@getSilentDaysMap",
        "expected_test_path": "tests/Feature/CultureAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\CultureAnalyticsService;\n\nclass CultureAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\CultureAnalyticsService@getSilentDaysMap\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsilentdaysmap_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\CultureAnalyticsService@getSilentDaysMap is PROOF_READY but no test file at tests/Feature/CultureAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateCliqueCandidates",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateCliqueCandidates",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\FairnessAnalyticsService;\n\nclass FairnessAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\FairnessAnalyticsService@calculateCliqueCandidates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculatecliquecandidates_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\FairnessAnalyticsService@calculateCliqueCandidates is PROOF_READY but no test file at tests/Feature/FairnessAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateRecognitionEquityIndex",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateRecognitionEquityIndex",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\FairnessAnalyticsService;\n\nclass FairnessAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\FairnessAnalyticsService@calculateRecognitionEquityIndex\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculaterecognitionequityindex_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\FairnessAnalyticsService@calculateRecognitionEquityIndex is PROOF_READY but no test file at tests/Feature/FairnessAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::calculateSiloScoreByDepartment",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@calculateSiloScoreByDepartment",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\FairnessAnalyticsService;\n\nclass FairnessAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\FairnessAnalyticsService@calculateSiloScoreByDepartment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculatesiloscorebydepartment_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\FairnessAnalyticsService@calculateSiloScoreByDepartment is PROOF_READY but no test file at tests/Feature/FairnessAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getCliqueCandidates",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\FairnessAnalyticsService;\n\nclass FairnessAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcliquecandidates_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\FairnessAnalyticsService@getCliqueCandidates is PROOF_READY but no test file at tests/Feature/FairnessAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getRecognitionEquityIndex",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getRecognitionEquityIndex",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\FairnessAnalyticsService;\n\nclass FairnessAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\FairnessAnalyticsService@getRecognitionEquityIndex\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrecognitionequityindex_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\FairnessAnalyticsService@getRecognitionEquityIndex is PROOF_READY but no test file at tests/Feature/FairnessAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/FairnessAnalyticsService.php::App\\Services\\Awareness\\FairnessAnalyticsService::getSiloScoreByDepartment",
        "fqmn": "App\\Services\\Awareness\\FairnessAnalyticsService@getSiloScoreByDepartment",
        "expected_test_path": "tests/Feature/FairnessAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\FairnessAnalyticsService;\n\nclass FairnessAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\FairnessAnalyticsService@getSiloScoreByDepartment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsiloscorebydepartment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\FairnessAnalyticsService@getSiloScoreByDepartment is PROOF_READY but no test file at tests/Feature/FairnessAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/HabitAnalyticsService.php::App\\Services\\Awareness\\HabitAnalyticsService::getStreakHealth",
        "fqmn": "App\\Services\\Awareness\\HabitAnalyticsService@getStreakHealth",
        "expected_test_path": "tests/Feature/HabitAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\HabitAnalyticsService;\n\nclass HabitAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\HabitAnalyticsService@getStreakHealth\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getstreakhealth_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\HabitAnalyticsService@getStreakHealth is PROOF_READY but no test file at tests/Feature/HabitAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/HabitAnalyticsService.php::App\\Services\\Awareness\\HabitAnalyticsService::getTeamConsistencyIndex",
        "fqmn": "App\\Services\\Awareness\\HabitAnalyticsService@getTeamConsistencyIndex",
        "expected_test_path": "tests/Feature/HabitAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\HabitAnalyticsService;\n\nclass HabitAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\HabitAnalyticsService@getTeamConsistencyIndex\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getteamconsistencyindex_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\HabitAnalyticsService@getTeamConsistencyIndex is PROOF_READY but no test file at tests/Feature/HabitAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::isLowSpecificity",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@isLowSpecificity",
        "expected_test_path": "tests/Feature/IntensityScoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\MessageIntensity\\IntensityScore;\n\nclass IntensityScoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\MessageIntensity\\IntensityScore@isLowSpecificity\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_islowspecificity_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\MessageIntensity\\IntensityScore@isLowSpecificity is PROOF_READY but no test file at tests/Feature/IntensityScoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/MessageIntensity/IntensityScore.php::App\\Services\\Awareness\\MessageIntensity\\IntensityScore::toArray",
        "fqmn": "App\\Services\\Awareness\\MessageIntensity\\IntensityScore@toArray",
        "expected_test_path": "tests/Feature/IntensityScoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\MessageIntensity\\IntensityScore;\n\nclass IntensityScoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\MessageIntensity\\IntensityScore@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\MessageIntensity\\IntensityScore@toArray is PROOF_READY but no test file at tests/Feature/IntensityScoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/ProductivityLinkService.php::App\\Services\\Awareness\\ProductivityLinkService::getUnderRecognizedHighProducers",
        "fqmn": "App\\Services\\Awareness\\ProductivityLinkService@getUnderRecognizedHighProducers",
        "expected_test_path": "tests/Feature/ProductivityLinkServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\ProductivityLinkService;\n\nclass ProductivityLinkServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\ProductivityLinkService@getUnderRecognizedHighProducers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getunderrecognizedhighproducers_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\ProductivityLinkService@getUnderRecognizedHighProducers is PROOF_READY but no test file at tests/Feature/ProductivityLinkServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getAfterHoursStressSignal",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getAfterHoursStressSignal",
        "expected_test_path": "tests/Feature/RiskIntegrityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\RiskIntegrityService;\n\nclass RiskIntegrityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\RiskIntegrityService@getAfterHoursStressSignal\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getafterhoursstresssignal_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\RiskIntegrityService@getAfterHoursStressSignal is PROOF_READY but no test file at tests/Feature/RiskIntegrityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getLowSpecificityFlags",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getLowSpecificityFlags",
        "expected_test_path": "tests/Feature/RiskIntegrityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\RiskIntegrityService;\n\nclass RiskIntegrityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\RiskIntegrityService@getLowSpecificityFlags\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlowspecificityflags_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\RiskIntegrityService@getLowSpecificityFlags is PROOF_READY but no test file at tests/Feature/RiskIntegrityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/RiskIntegrityService.php::App\\Services\\Awareness\\RiskIntegrityService::getPolicyAbuseWatch",
        "fqmn": "App\\Services\\Awareness\\RiskIntegrityService@getPolicyAbuseWatch",
        "expected_test_path": "tests/Feature/RiskIntegrityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\RiskIntegrityService;\n\nclass RiskIntegrityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\RiskIntegrityService@getPolicyAbuseWatch\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpolicyabusewatch_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\RiskIntegrityService@getPolicyAbuseWatch is PROOF_READY but no test file at tests/Feature/RiskIntegrityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getDecliningValues",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues",
        "expected_test_path": "tests/Feature/ValuesAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\ValuesAnalyticsService;\n\nclass ValuesAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdecliningvalues_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\ValuesAnalyticsService@getDecliningValues is PROOF_READY but no test file at tests/Feature/ValuesAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getImpactScores",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getImpactScores",
        "expected_test_path": "tests/Feature/ValuesAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\ValuesAnalyticsService;\n\nclass ValuesAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\ValuesAnalyticsService@getImpactScores\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getimpactscores_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\ValuesAnalyticsService@getImpactScores is PROOF_READY but no test file at tests/Feature/ValuesAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Awareness/ValuesAnalyticsService.php::App\\Services\\Awareness\\ValuesAnalyticsService::getRisingValues",
        "fqmn": "App\\Services\\Awareness\\ValuesAnalyticsService@getRisingValues",
        "expected_test_path": "tests/Feature/ValuesAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Awareness\\ValuesAnalyticsService;\n\nclass ValuesAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Awareness\\ValuesAnalyticsService@getRisingValues\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrisingvalues_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Awareness\\ValuesAnalyticsService@getRisingValues is PROOF_READY but no test file at tests/Feature/ValuesAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::collectForView",
        "fqmn": "App\\Services\\BadgeOkrService@collectForView",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeOkrService;\n\nclass BadgeOkrServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeOkrService@collectForView\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_collectforview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeOkrService@collectForView is PROOF_READY but no test file at tests/Feature/BadgeOkrServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getBadgeRoiMetrics",
        "fqmn": "App\\Services\\BadgeOkrService@getBadgeRoiMetrics",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeOkrService;\n\nclass BadgeOkrServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeOkrService@getBadgeRoiMetrics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbadgeroimetrics_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeOkrService@getBadgeRoiMetrics is PROOF_READY but no test file at tests/Feature/BadgeOkrServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getResultOrientedTargets",
        "fqmn": "App\\Services\\BadgeOkrService@getResultOrientedTargets",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeOkrService;\n\nclass BadgeOkrServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeOkrService@getResultOrientedTargets\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getresultorientedtargets_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeOkrService@getResultOrientedTargets is PROOF_READY but no test file at tests/Feature/BadgeOkrServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getRoiTimeline",
        "fqmn": "App\\Services\\BadgeOkrService@getRoiTimeline",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeOkrService;\n\nclass BadgeOkrServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeOkrService@getRoiTimeline\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getroitimeline_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeOkrService@getRoiTimeline is PROOF_READY but no test file at tests/Feature/BadgeOkrServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getTaskOrientedTargets",
        "fqmn": "App\\Services\\BadgeOkrService@getTaskOrientedTargets",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeOkrService;\n\nclass BadgeOkrServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeOkrService@getTaskOrientedTargets\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettaskorientedtargets_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeOkrService@getTaskOrientedTargets is PROOF_READY but no test file at tests/Feature/BadgeOkrServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeOkrService.php::App\\Services\\BadgeOkrService::getTeamProgress",
        "fqmn": "App\\Services\\BadgeOkrService@getTeamProgress",
        "expected_test_path": "tests/Feature/BadgeOkrServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeOkrService;\n\nclass BadgeOkrServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeOkrService@getTeamProgress\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getteamprogress_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeOkrService@getTeamProgress is PROOF_READY but no test file at tests/Feature/BadgeOkrServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::awardBadge",
        "fqmn": "App\\Services\\BadgeService@awardBadge",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeService;\n\nclass BadgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeService@awardBadge\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_awardbadge_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeService@awardBadge is PROOF_READY but no test file at tests/Feature/BadgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::checkAndAwardBadges",
        "fqmn": "App\\Services\\BadgeService@checkAndAwardBadges",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeService;\n\nclass BadgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeService@checkAndAwardBadges\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkandawardbadges_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeService@checkAndAwardBadges is PROOF_READY but no test file at tests/Feature/BadgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::getAvailableBadges",
        "fqmn": "App\\Services\\BadgeService@getAvailableBadges",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeService;\n\nclass BadgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeService@getAvailableBadges\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getavailablebadges_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeService@getAvailableBadges is PROOF_READY but no test file at tests/Feature/BadgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::getUserBadgeStats",
        "fqmn": "App\\Services\\BadgeService@getUserBadgeStats",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeService;\n\nclass BadgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeService@getUserBadgeStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getuserbadgestats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeService@getUserBadgeStats is PROOF_READY but no test file at tests/Feature/BadgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BadgeService.php::App\\Services\\BadgeService::revokeBadge",
        "fqmn": "App\\Services\\BadgeService@revokeBadge",
        "expected_test_path": "tests/Feature/BadgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BadgeService;\n\nclass BadgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BadgeService@revokeBadge\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_revokebadge_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\BadgeService@revokeBadge is PROOF_READY but no test file at tests/Feature/BadgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Billing/BillingAmountCalculator.php::App\\Services\\Billing\\BillingAmountCalculator::calculateFromBase",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase",
        "expected_test_path": "tests/Feature/BillingAmountCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Billing\\BillingAmountCalculator;\n\nclass BillingAmountCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculatefrombase_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Billing\\BillingAmountCalculator@calculateFromBase is PROOF_READY but no test file at tests/Feature/BillingAmountCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Billing/BillingAmountCalculator.php::App\\Services\\Billing\\BillingAmountCalculator::calculateTotal",
        "fqmn": "App\\Services\\Billing\\BillingAmountCalculator@calculateTotal",
        "expected_test_path": "tests/Feature/BillingAmountCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Billing\\BillingAmountCalculator;\n\nclass BillingAmountCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\BillingAmountCalculator@calculateTotal\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculatetotal_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Billing\\BillingAmountCalculator@calculateTotal is PROOF_READY but no test file at tests/Feature/BillingAmountCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Billing/LedgerBackSyncService.php::App\\Services\\Billing\\LedgerBackSyncService::apply",
        "fqmn": "App\\Services\\Billing\\LedgerBackSyncService@apply",
        "expected_test_path": "tests/Feature/LedgerBackSyncServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Billing\\LedgerBackSyncService;\n\nclass LedgerBackSyncServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\LedgerBackSyncService@apply\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_apply_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Billing\\LedgerBackSyncService@apply is PROOF_READY but no test file at tests/Feature/LedgerBackSyncServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Billing/RevenueRecognitionRefundAdjuster.php::App\\Services\\Billing\\RevenueRecognitionRefundAdjuster::adjustForRefund",
        "fqmn": "App\\Services\\Billing\\RevenueRecognitionRefundAdjuster@adjustForRefund",
        "expected_test_path": "tests/Feature/RevenueRecognitionRefundAdjusterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Billing\\RevenueRecognitionRefundAdjuster;\n\nclass RevenueRecognitionRefundAdjusterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\RevenueRecognitionRefundAdjuster@adjustForRefund\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_adjustforrefund_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Billing\\RevenueRecognitionRefundAdjuster@adjustForRefund is PROOF_READY but no test file at tests/Feature/RevenueRecognitionRefundAdjusterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Billing/SeatCountService.php::App\\Services\\Billing\\SeatCountService::getBillableUnitCount",
        "fqmn": "App\\Services\\Billing\\SeatCountService@getBillableUnitCount",
        "expected_test_path": "tests/Feature/SeatCountServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Billing\\SeatCountService;\n\nclass SeatCountServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Billing\\SeatCountService@getBillableUnitCount\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbillableunitcount_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Billing\\SeatCountService@getBillableUnitCount is PROOF_READY but no test file at tests/Feature/SeatCountServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BotMan/BotHelpService.php::App\\Services\\BotMan\\BotHelpService::replyFor",
        "fqmn": "App\\Services\\BotMan\\BotHelpService@replyFor",
        "expected_test_path": "tests/Feature/BotHelpServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BotMan\\BotHelpService;\n\nclass BotHelpServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BotMan\\BotHelpService@replyFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_replyfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BotMan\\BotHelpService@replyFor is PROOF_READY but no test file at tests/Feature/BotHelpServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/BotMan/BotHelpService.php::App\\Services\\BotMan\\BotHelpService::replyForWithContext",
        "fqmn": "App\\Services\\BotMan\\BotHelpService@replyForWithContext",
        "expected_test_path": "tests/Feature/BotHelpServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\BotMan\\BotHelpService;\n\nclass BotHelpServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\BotMan\\BotHelpService@replyForWithContext\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_replyforwithcontext_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\BotMan\\BotHelpService@replyForWithContext is PROOF_READY but no test file at tests/Feature/BotHelpServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadMetricsService.php::App\\Services\\Chat\\ThreadMetricsService::snapshot",
        "fqmn": "App\\Services\\Chat\\ThreadMetricsService@snapshot",
        "expected_test_path": "tests/Feature/ThreadMetricsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadMetricsService;\n\nclass ThreadMetricsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadMetricsService@snapshot\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_snapshot_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadMetricsService@snapshot is PROOF_READY but no test file at tests/Feature/ThreadMetricsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::dispatchNewMessageNotifications",
        "fqmn": "App\\Services\\Chat\\ThreadService@dispatchNewMessageNotifications",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadService;\n\nclass ThreadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadService@dispatchNewMessageNotifications\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_dispatchnewmessagenotifications_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadService@dispatchNewMessageNotifications is PROOF_READY but no test file at tests/Feature/ThreadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::getReplies",
        "fqmn": "App\\Services\\Chat\\ThreadService@getReplies",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadService;\n\nclass ThreadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadService@getReplies\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getreplies_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadService@getReplies is PROOF_READY but no test file at tests/Feature/ThreadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::isMutedFor",
        "fqmn": "App\\Services\\Chat\\ThreadService@isMutedFor",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadService;\n\nclass ThreadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadService@isMutedFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_ismutedfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadService@isMutedFor is PROOF_READY but no test file at tests/Feature/ThreadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::markRead",
        "fqmn": "App\\Services\\Chat\\ThreadService@markRead",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadService;\n\nclass ThreadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadService@markRead\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markread_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadService@markRead is PROOF_READY but no test file at tests/Feature/ThreadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::mutedUserIds",
        "fqmn": "App\\Services\\Chat\\ThreadService@mutedUserIds",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadService;\n\nclass ThreadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadService@mutedUserIds\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_muteduserids_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadService@mutedUserIds is PROOF_READY but no test file at tests/Feature/ThreadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::setMuted",
        "fqmn": "App\\Services\\Chat\\ThreadService@setMuted",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadService;\n\nclass ThreadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadService@setMuted\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setmuted_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadService@setMuted is PROOF_READY but no test file at tests/Feature/ThreadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::unreadCount",
        "fqmn": "App\\Services\\Chat\\ThreadService@unreadCount",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadService;\n\nclass ThreadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadService@unreadCount\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unreadcount_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadService@unreadCount is PROOF_READY but no test file at tests/Feature/ThreadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Chat/ThreadService.php::App\\Services\\Chat\\ThreadService::unreadCountsBulk",
        "fqmn": "App\\Services\\Chat\\ThreadService@unreadCountsBulk",
        "expected_test_path": "tests/Feature/ThreadServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Chat\\ThreadService;\n\nclass ThreadServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Chat\\ThreadService@unreadCountsBulk\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_unreadcountsbulk_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Chat\\ThreadService@unreadCountsBulk is PROOF_READY but no test file at tests/Feature/ThreadServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CityFromIp.php::App\\Services\\CityFromIp::for",
        "fqmn": "App\\Services\\CityFromIp@for",
        "expected_test_path": "tests/Feature/CityFromIpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CityFromIp;\n\nclass CityFromIpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CityFromIp@for\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_for_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\CityFromIp@for is PROOF_READY but no test file at tests/Feature/CityFromIpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchDepartments",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchDepartments",
        "expected_test_path": "tests/Feature/CompanyDirectoryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CompanyDirectoryService;\n\nclass CompanyDirectoryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CompanyDirectoryService@searchDepartments\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_searchdepartments_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\CompanyDirectoryService@searchDepartments is PROOF_READY but no test file at tests/Feature/CompanyDirectoryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchTeams",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchTeams",
        "expected_test_path": "tests/Feature/CompanyDirectoryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CompanyDirectoryService;\n\nclass CompanyDirectoryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CompanyDirectoryService@searchTeams\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_searchteams_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\CompanyDirectoryService@searchTeams is PROOF_READY but no test file at tests/Feature/CompanyDirectoryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CompanyDirectoryService.php::App\\Services\\CompanyDirectoryService::searchUsers",
        "fqmn": "App\\Services\\CompanyDirectoryService@searchUsers",
        "expected_test_path": "tests/Feature/CompanyDirectoryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CompanyDirectoryService;\n\nclass CompanyDirectoryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CompanyDirectoryService@searchUsers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_searchusers_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\CompanyDirectoryService@searchUsers is PROOF_READY but no test file at tests/Feature/CompanyDirectoryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::getCompanyHealth",
        "fqmn": "App\\Services\\CompanyInsightsService@getCompanyHealth",
        "expected_test_path": "tests/Feature/CompanyInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CompanyInsightsService;\n\nclass CompanyInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CompanyInsightsService@getCompanyHealth\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcompanyhealth_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\CompanyInsightsService@getCompanyHealth is PROOF_READY but no test file at tests/Feature/CompanyInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::getPerformanceTrends",
        "fqmn": "App\\Services\\CompanyInsightsService@getPerformanceTrends",
        "expected_test_path": "tests/Feature/CompanyInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CompanyInsightsService;\n\nclass CompanyInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CompanyInsightsService@getPerformanceTrends\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getperformancetrends_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\CompanyInsightsService@getPerformanceTrends is PROOF_READY but no test file at tests/Feature/CompanyInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CompanyInsightsService.php::App\\Services\\CompanyInsightsService::resolve",
        "fqmn": "App\\Services\\CompanyInsightsService@resolve",
        "expected_test_path": "tests/Feature/CompanyInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CompanyInsightsService;\n\nclass CompanyInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CompanyInsightsService@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\CompanyInsightsService@resolve is PROOF_READY but no test file at tests/Feature/CompanyInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Ai/AiSummaryPayloadBuilder.php::App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder@build",
        "expected_test_path": "tests/Feature/AiSummaryPayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder;\n\nclass AiSummaryPayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Ai\\AiSummaryPayloadBuilder@build is PROOF_READY but no test file at tests/Feature/AiSummaryPayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Ai/OpenAiSummaryClient.php::App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient::generateSummaries",
        "fqmn": "App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient@generateSummaries",
        "expected_test_path": "tests/Feature/OpenAiSummaryClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient;\n\nclass OpenAiSummaryClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient@generateSummaries\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatesummaries_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Ai\\OpenAiSummaryClient@generateSummaries is PROOF_READY but no test file at tests/Feature/OpenAiSummaryClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomKpiService.php::App\\Services\\ControlRoom\\ControlRoomKpiService::buildExecutiveFallback",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomKpiService@buildExecutiveFallback",
        "expected_test_path": "tests/Feature/ControlRoomKpiServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\ControlRoomKpiService;\n\nclass ControlRoomKpiServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\ControlRoomKpiService@buildExecutiveFallback\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildexecutivefallback_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\ControlRoomKpiService@buildExecutiveFallback is PROOF_READY but no test file at tests/Feature/ControlRoomKpiServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomKpiService.php::App\\Services\\ControlRoom\\ControlRoomKpiService::buildKpiContext",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomKpiService@buildKpiContext",
        "expected_test_path": "tests/Feature/ControlRoomKpiServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\ControlRoomKpiService;\n\nclass ControlRoomKpiServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\ControlRoomKpiService@buildKpiContext\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildkpicontext_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\ControlRoomKpiService@buildKpiContext is PROOF_READY but no test file at tests/Feature/ControlRoomKpiServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::formatValue",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@formatValue",
        "expected_test_path": "tests/Feature/ControlRoomResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\ControlRoomResolver;\n\nclass ControlRoomResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\ControlRoomResolver@formatValue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formatvalue_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\ControlRoomResolver@formatValue is PROOF_READY but no test file at tests/Feature/ControlRoomResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::getPriorSummary",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@getPriorSummary",
        "expected_test_path": "tests/Feature/ControlRoomResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\ControlRoomResolver;\n\nclass ControlRoomResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\ControlRoomResolver@getPriorSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpriorsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\ControlRoomResolver@getPriorSummary is PROOF_READY but no test file at tests/Feature/ControlRoomResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/ControlRoomResolver.php::App\\Services\\ControlRoom\\ControlRoomResolver::getSummary",
        "fqmn": "App\\Services\\ControlRoom\\ControlRoomResolver@getSummary",
        "expected_test_path": "tests/Feature/ControlRoomResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\ControlRoomResolver;\n\nclass ControlRoomResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\ControlRoomResolver@getSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\ControlRoomResolver@getSummary is PROOF_READY but no test file at tests/Feature/ControlRoomResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/CoverageStatsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build",
        "expected_test_path": "tests/Feature/CoverageStatsPayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder;\n\nclass CoverageStatsPayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\CoverageStatsPayloadBuilder@build is PROOF_READY but no test file at tests/Feature/CoverageStatsPayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/DrilldownPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder@build",
        "expected_test_path": "tests/Feature/DrilldownPayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder;\n\nclass DrilldownPayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\DrilldownPayloadBuilder@build is PROOF_READY but no test file at tests/Feature/DrilldownPayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/ManagerBudgetTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder@build",
        "expected_test_path": "tests/Feature/ManagerBudgetTablePayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder;\n\nclass ManagerBudgetTablePayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\ManagerBudgetTablePayloadBuilder@build is PROOF_READY but no test file at tests/Feature/ManagerBudgetTablePayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/NarrativePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder::hasNarrative",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative",
        "expected_test_path": "tests/Feature/NarrativePayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder;\n\nclass NarrativePayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasnarrative_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\NarrativePayloadBuilder@hasNarrative is PROOF_READY but no test file at tests/Feature/NarrativePayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/ParticipationSegmentsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder@build",
        "expected_test_path": "tests/Feature/ParticipationSegmentsPayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder;\n\nclass ParticipationSegmentsPayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\ParticipationSegmentsPayloadBuilder@build is PROOF_READY but no test file at tests/Feature/ParticipationSegmentsPayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RankedListTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@build",
        "expected_test_path": "tests/Feature/RankedListTablePayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder;\n\nclass RankedListTablePayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@build is PROOF_READY but no test file at tests/Feature/RankedListTablePayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RankedListTablePayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@hasShape",
        "expected_test_path": "tests/Feature/RankedListTablePayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder;\n\nclass RankedListTablePayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@hasShape\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasshape_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\RankedListTablePayloadBuilder@hasShape is PROOF_READY but no test file at tests/Feature/RankedListTablePayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/RateStatsPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder@hasShape",
        "expected_test_path": "tests/Feature/RateStatsPayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder;\n\nclass RateStatsPayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder@hasShape\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasshape_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\RateStatsPayloadBuilder@hasShape is PROOF_READY but no test file at tests/Feature/RateStatsPayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/TrendPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@build",
        "expected_test_path": "tests/Feature/TrendPayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder;\n\nclass TrendPayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@build is PROOF_READY but no test file at tests/Feature/TrendPayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/Drilldowns/TrendPayloadBuilder.php::App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder::hasShape",
        "fqmn": "App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@hasShape",
        "expected_test_path": "tests/Feature/TrendPayloadBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder;\n\nclass TrendPayloadBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@hasShape\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasshape_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\Drilldowns\\TrendPayloadBuilder@hasShape is PROOF_READY but no test file at tests/Feature/TrendPayloadBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/GlossaryComposer.php::App\\Services\\ControlRoom\\GlossaryComposer::resolveActiveCompanyId",
        "fqmn": "App\\Services\\ControlRoom\\GlossaryComposer@resolveActiveCompanyId",
        "expected_test_path": "tests/Feature/GlossaryComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\GlossaryComposer;\n\nclass GlossaryComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\GlossaryComposer@resolveActiveCompanyId\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolveactivecompanyid_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\GlossaryComposer@resolveActiveCompanyId is PROOF_READY but no test file at tests/Feature/GlossaryComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/ParticipationSegmentResolver.php::App\\Services\\ControlRoom\\ParticipationSegmentResolver::resolveSegmentActivity",
        "fqmn": "App\\Services\\ControlRoom\\ParticipationSegmentResolver@resolveSegmentActivity",
        "expected_test_path": "tests/Feature/ParticipationSegmentResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\ParticipationSegmentResolver;\n\nclass ParticipationSegmentResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\ParticipationSegmentResolver@resolveSegmentActivity\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvesegmentactivity_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\ParticipationSegmentResolver@resolveSegmentActivity is PROOF_READY but no test file at tests/Feature/ParticipationSegmentResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/ScopeResolver.php::App\\Services\\ControlRoom\\ScopeResolver::resolve",
        "fqmn": "App\\Services\\ControlRoom\\ScopeResolver@resolve",
        "expected_test_path": "tests/Feature/ScopeResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\ScopeResolver;\n\nclass ScopeResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\ScopeResolver@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\ScopeResolver@resolve is PROOF_READY but no test file at tests/Feature/ScopeResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/BaselineBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder@build",
        "expected_test_path": "tests/Feature/BaselineBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder;\n\nclass BaselineBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\BaselineBuilder@build is PROOF_READY but no test file at tests/Feature/BaselineBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/DataAggregator.php::App\\Services\\ControlRoom\\TalentInsights\\DataAggregator::aggregate",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\DataAggregator@aggregate",
        "expected_test_path": "tests/Feature/DataAggregatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\DataAggregator;\n\nclass DataAggregatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\DataAggregator@aggregate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_aggregate_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\DataAggregator@aggregate is PROOF_READY but no test file at tests/Feature/DataAggregatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/EngagementRisk.php::App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk::computeV2",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk@computeV2",
        "expected_test_path": "tests/Feature/EngagementRiskTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk;\n\nclass EngagementRiskTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk@computeV2\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computev2_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\EngagementRisk@computeV2 is PROOF_READY but no test file at tests/Feature/EngagementRiskTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/FeatureBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder::build",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@build",
        "expected_test_path": "tests/Feature/FeatureBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder;\n\nclass FeatureBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@build is PROOF_READY but no test file at tests/Feature/FeatureBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/FeatureBuilder.php::App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder::preprocess",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@preprocess",
        "expected_test_path": "tests/Feature/FeatureBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder;\n\nclass FeatureBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@preprocess\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_preprocess_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\FeatureBuilder@preprocess is PROOF_READY but no test file at tests/Feature/FeatureBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/LeadershipScore.php::App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore::compute",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore@compute",
        "expected_test_path": "tests/Feature/LeadershipScoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore;\n\nclass LeadershipScoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\LeadershipScore@compute is PROOF_READY but no test file at tests/Feature/LeadershipScoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::clamp01",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_clamp01_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@clamp01 is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::mad",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_mad_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@mad is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::median",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@median",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@median\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_median_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@median is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::percentileRank",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileRank",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileRank\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_percentilerank_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileRank is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::percentileValue",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileValue",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileValue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_percentilevalue_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@percentileValue is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::robustZScore",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@robustZScore",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@robustZScore\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_robustzscore_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@robustZScore is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::toPercentage",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@toPercentage",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@toPercentage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_topercentage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@toPercentage is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::weightedSum",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@weightedSum",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@weightedSum\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_weightedsum_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@weightedSum is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/StatisticalHelper.php::App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper::winsorize",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@winsorize",
        "expected_test_path": "tests/Feature/StatisticalHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper;\n\nclass StatisticalHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@winsorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_winsorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\StatisticalHelper@winsorize is PROOF_READY but no test file at tests/Feature/StatisticalHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::formatForDisplay",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@formatForDisplay",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService;\n\nclass TalentInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@formatForDisplay\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formatfordisplay_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@formatForDisplay is PROOF_READY but no test file at tests/Feature/TalentInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::getAtRiskCount",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskCount",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService;\n\nclass TalentInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskCount\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getatriskcount_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskCount is PROOF_READY but no test file at tests/Feature/TalentInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::getAtRiskList",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskList",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService;\n\nclass TalentInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskList\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getatrisklist_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@getAtRiskList is PROOF_READY but no test file at tests/Feature/TalentInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::isExcludedFromDisplay",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@isExcludedFromDisplay",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService;\n\nclass TalentInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@isExcludedFromDisplay\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isexcludedfromdisplay_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@isExcludedFromDisplay is PROOF_READY but no test file at tests/Feature/TalentInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::resolve",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@resolve",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService;\n\nclass TalentInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@resolve is PROOF_READY but no test file at tests/Feature/TalentInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TalentInsights/TalentInsightsService.php::App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService::toLegacyFormat",
        "fqmn": "App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@toLegacyFormat",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService;\n\nclass TalentInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@toLegacyFormat\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tolegacyformat_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TalentInsights\\TalentInsightsService@toLegacyFormat is PROOF_READY but no test file at tests/Feature/TalentInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TimeWindowHelper.php::App\\Services\\ControlRoom\\TimeWindowHelper::detectWindowType",
        "fqmn": "App\\Services\\ControlRoom\\TimeWindowHelper@detectWindowType",
        "expected_test_path": "tests/Feature/TimeWindowHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TimeWindowHelper;\n\nclass TimeWindowHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TimeWindowHelper@detectWindowType\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detectwindowtype_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TimeWindowHelper@detectWindowType is PROOF_READY but no test file at tests/Feature/TimeWindowHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoom/TimeWindowHelper.php::App\\Services\\ControlRoom\\TimeWindowHelper::resolveWindow",
        "fqmn": "App\\Services\\ControlRoom\\TimeWindowHelper@resolveWindow",
        "expected_test_path": "tests/Feature/TimeWindowHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoom\\TimeWindowHelper;\n\nclass TimeWindowHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoom\\TimeWindowHelper@resolveWindow\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvewindow_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoom\\TimeWindowHelper@resolveWindow is PROOF_READY but no test file at tests/Feature/TimeWindowHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getBadgeEarnersLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoomLeaderboardService;\n\nclass ControlRoomLeaderboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbadgeearnersleaderboard_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoomLeaderboardService@getBadgeEarnersLeaderboard is PROOF_READY but no test file at tests/Feature/ControlRoomLeaderboardServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getParticipantLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getParticipantLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoomLeaderboardService;\n\nclass ControlRoomLeaderboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoomLeaderboardService@getParticipantLeaderboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getparticipantleaderboard_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoomLeaderboardService@getParticipantLeaderboard is PROOF_READY but no test file at tests/Feature/ControlRoomLeaderboardServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getPointsGainersLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getPointsGainersLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoomLeaderboardService;\n\nclass ControlRoomLeaderboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoomLeaderboardService@getPointsGainersLeaderboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpointsgainersleaderboard_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoomLeaderboardService@getPointsGainersLeaderboard is PROOF_READY but no test file at tests/Feature/ControlRoomLeaderboardServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getReceiverLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getReceiverLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoomLeaderboardService;\n\nclass ControlRoomLeaderboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoomLeaderboardService@getReceiverLeaderboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getreceiverleaderboard_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoomLeaderboardService@getReceiverLeaderboard is PROOF_READY but no test file at tests/Feature/ControlRoomLeaderboardServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ControlRoomLeaderboardService.php::App\\Services\\ControlRoomLeaderboardService::getTaskCompletorsLeaderboard",
        "fqmn": "App\\Services\\ControlRoomLeaderboardService@getTaskCompletorsLeaderboard",
        "expected_test_path": "tests/Feature/ControlRoomLeaderboardServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ControlRoomLeaderboardService;\n\nclass ControlRoomLeaderboardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ControlRoomLeaderboardService@getTaskCompletorsLeaderboard\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettaskcompletorsleaderboard_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ControlRoomLeaderboardService@getTaskCompletorsLeaderboard is PROOF_READY but no test file at tests/Feature/ControlRoomLeaderboardServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::applyAdvanceToInvoice",
        "fqmn": "App\\Services\\CreditLedgerService@applyAdvanceToInvoice",
        "expected_test_path": "tests/Feature/CreditLedgerServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CreditLedgerService;\n\nclass CreditLedgerServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CreditLedgerService@applyAdvanceToInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applyadvancetoinvoice_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\CreditLedgerService@applyAdvanceToInvoice is PROOF_READY but no test file at tests/Feature/CreditLedgerServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CreditLedgerService.php::App\\Services\\CreditLedgerService::issueCustomerAdvance",
        "fqmn": "App\\Services\\CreditLedgerService@issueCustomerAdvance",
        "expected_test_path": "tests/Feature/CreditLedgerServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CreditLedgerService;\n\nclass CreditLedgerServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CreditLedgerService@issueCustomerAdvance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_issuecustomeradvance_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\CreditLedgerService@issueCustomerAdvance is PROOF_READY but no test file at tests/Feature/CreditLedgerServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CulturalMomentumService.php::App\\Services\\CulturalMomentumService::compute",
        "fqmn": "App\\Services\\CulturalMomentumService@compute",
        "expected_test_path": "tests/Feature/CulturalMomentumServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CulturalMomentumService;\n\nclass CulturalMomentumServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CulturalMomentumService@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\CulturalMomentumService@compute is PROOF_READY but no test file at tests/Feature/CulturalMomentumServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CultureMetricsService.php::App\\Services\\CultureMetricsService::getCulturalMomentum",
        "fqmn": "App\\Services\\CultureMetricsService@getCulturalMomentum",
        "expected_test_path": "tests/Feature/CultureMetricsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CultureMetricsService;\n\nclass CultureMetricsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CultureMetricsService@getCulturalMomentum\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getculturalmomentum_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\CultureMetricsService@getCulturalMomentum is PROOF_READY but no test file at tests/Feature/CultureMetricsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/CultureMetricsService.php::App\\Services\\CultureMetricsService::getTeamCollaboration",
        "fqmn": "App\\Services\\CultureMetricsService@getTeamCollaboration",
        "expected_test_path": "tests/Feature/CultureMetricsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\CultureMetricsService;\n\nclass CultureMetricsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\CultureMetricsService@getTeamCollaboration\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getteamcollaboration_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\CultureMetricsService@getTeamCollaboration is PROOF_READY but no test file at tests/Feature/CultureMetricsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/BadgesPieComposer.php::App\\Services\\Dashboard\\BadgesPieComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\BadgesPieComposer@compose",
        "expected_test_path": "tests/Feature/BadgesPieComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\BadgesPieComposer;\n\nclass BadgesPieComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\BadgesPieComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\BadgesPieComposer@compose is PROOF_READY but no test file at tests/Feature/BadgesPieComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/CulturePulseFeedComposer.php::App\\Services\\Dashboard\\CulturePulseFeedComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\CulturePulseFeedComposer@compose",
        "expected_test_path": "tests/Feature/CulturePulseFeedComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\CulturePulseFeedComposer;\n\nclass CulturePulseFeedComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\CulturePulseFeedComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\CulturePulseFeedComposer@compose is PROOF_READY but no test file at tests/Feature/CulturePulseFeedComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/LeaderboardSnapshotComposer.php::App\\Services\\Dashboard\\LeaderboardSnapshotComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\LeaderboardSnapshotComposer@compose",
        "expected_test_path": "tests/Feature/LeaderboardSnapshotComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\LeaderboardSnapshotComposer;\n\nclass LeaderboardSnapshotComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\LeaderboardSnapshotComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\LeaderboardSnapshotComposer@compose is PROOF_READY but no test file at tests/Feature/LeaderboardSnapshotComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/PerformerRankingComposer.php::App\\Services\\Dashboard\\PerformerRankingComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\PerformerRankingComposer@compose",
        "expected_test_path": "tests/Feature/PerformerRankingComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\PerformerRankingComposer;\n\nclass PerformerRankingComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\PerformerRankingComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\PerformerRankingComposer@compose is PROOF_READY but no test file at tests/Feature/PerformerRankingComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/RecognitionPointsComposer.php::App\\Services\\Dashboard\\RecognitionPointsComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\RecognitionPointsComposer@compose",
        "expected_test_path": "tests/Feature/RecognitionPointsComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\RecognitionPointsComposer;\n\nclass RecognitionPointsComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\RecognitionPointsComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\RecognitionPointsComposer@compose is PROOF_READY but no test file at tests/Feature/RecognitionPointsComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/TaskCompletersComposer.php::App\\Services\\Dashboard\\TaskCompletersComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TaskCompletersComposer@compose",
        "expected_test_path": "tests/Feature/TaskCompletersComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\TaskCompletersComposer;\n\nclass TaskCompletersComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\TaskCompletersComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\TaskCompletersComposer@compose is PROOF_READY but no test file at tests/Feature/TaskCompletersComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/TasksSummaryComposer.php::App\\Services\\Dashboard\\TasksSummaryComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TasksSummaryComposer@compose",
        "expected_test_path": "tests/Feature/TasksSummaryComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\TasksSummaryComposer;\n\nclass TasksSummaryComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\TasksSummaryComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\TasksSummaryComposer@compose is PROOF_READY but no test file at tests/Feature/TasksSummaryComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/TeamPerformanceComposer.php::App\\Services\\Dashboard\\TeamPerformanceComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\TeamPerformanceComposer@compose",
        "expected_test_path": "tests/Feature/TeamPerformanceComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\TeamPerformanceComposer;\n\nclass TeamPerformanceComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\TeamPerformanceComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\TeamPerformanceComposer@compose is PROOF_READY but no test file at tests/Feature/TeamPerformanceComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Dashboard/ValuesPieComposer.php::App\\Services\\Dashboard\\ValuesPieComposer::compose",
        "fqmn": "App\\Services\\Dashboard\\ValuesPieComposer@compose",
        "expected_test_path": "tests/Feature/ValuesPieComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Dashboard\\ValuesPieComposer;\n\nclass ValuesPieComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Dashboard\\ValuesPieComposer@compose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compose_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Dashboard\\ValuesPieComposer@compose is PROOF_READY but no test file at tests/Feature/ValuesPieComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/DataQualityService.php::App\\Services\\DataQualityService::shouldShowWarning",
        "fqmn": "App\\Services\\DataQualityService@shouldShowWarning",
        "expected_test_path": "tests/Feature/DataQualityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\DataQualityService;\n\nclass DataQualityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\DataQualityService@shouldShowWarning\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldshowwarning_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\DataQualityService@shouldShowWarning is PROOF_READY but no test file at tests/Feature/DataQualityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/DiDAnalysisService.php::App\\Services\\DiDAnalysisService::calculateRetentionDiD",
        "fqmn": "App\\Services\\DiDAnalysisService@calculateRetentionDiD",
        "expected_test_path": "tests/Feature/DiDAnalysisServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\DiDAnalysisService;\n\nclass DiDAnalysisServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\DiDAnalysisService@calculateRetentionDiD\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculateretentiondid_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\DiDAnalysisService@calculateRetentionDiD is PROOF_READY but no test file at tests/Feature/DiDAnalysisServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Digest/DigestSourceHealthReporter.php::App\\Services\\Digest\\DigestSourceHealthReporter::aggregate",
        "fqmn": "App\\Services\\Digest\\DigestSourceHealthReporter@aggregate",
        "expected_test_path": "tests/Feature/DigestSourceHealthReporterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Digest\\DigestSourceHealthReporter;\n\nclass DigestSourceHealthReporterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Digest\\DigestSourceHealthReporter@aggregate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_aggregate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Digest\\DigestSourceHealthReporter@aggregate is PROOF_READY but no test file at tests/Feature/DigestSourceHealthReporterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Digest/GroundingPromptAppender.php::App\\Services\\Digest\\GroundingPromptAppender::build",
        "fqmn": "App\\Services\\Digest\\GroundingPromptAppender@build",
        "expected_test_path": "tests/Feature/GroundingPromptAppenderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Digest\\GroundingPromptAppender;\n\nclass GroundingPromptAppenderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Digest\\GroundingPromptAppender@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Digest\\GroundingPromptAppender@build is PROOF_READY but no test file at tests/Feature/GroundingPromptAppenderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Digest/Sources/CityResolver.php::App\\Services\\Digest\\Sources\\CityResolver::resolve",
        "fqmn": "App\\Services\\Digest\\Sources\\CityResolver@resolve",
        "expected_test_path": "tests/Feature/CityResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Digest\\Sources\\CityResolver;\n\nclass CityResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Digest\\Sources\\CityResolver@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Digest\\Sources\\CityResolver@resolve is PROOF_READY but no test file at tests/Feature/CityResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Digest/Sources/CityResolver.php::App\\Services\\Digest\\Sources\\CityResolver::resolveOrCapital",
        "fqmn": "App\\Services\\Digest\\Sources\\CityResolver@resolveOrCapital",
        "expected_test_path": "tests/Feature/CityResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Digest\\Sources\\CityResolver;\n\nclass CityResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Digest\\Sources\\CityResolver@resolveOrCapital\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolveorcapital_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Digest\\Sources\\CityResolver@resolveOrCapital is PROOF_READY but no test file at tests/Feature/CityResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::empty",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@empty",
        "expected_test_path": "tests/Feature/SourceBundleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Digest\\Sources\\SourceBundle;\n\nclass SourceBundleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Digest\\Sources\\SourceBundle@empty\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_empty_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Digest\\Sources\\SourceBundle@empty is PROOF_READY but no test file at tests/Feature/SourceBundleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::isEmpty",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@isEmpty",
        "expected_test_path": "tests/Feature/SourceBundleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Digest\\Sources\\SourceBundle;\n\nclass SourceBundleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Digest\\Sources\\SourceBundle@isEmpty\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isempty_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Digest\\Sources\\SourceBundle@isEmpty is PROOF_READY but no test file at tests/Feature/SourceBundleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Digest/Sources/SourceBundle.php::App\\Services\\Digest\\Sources\\SourceBundle::toArray",
        "fqmn": "App\\Services\\Digest\\Sources\\SourceBundle@toArray",
        "expected_test_path": "tests/Feature/SourceBundleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Digest\\Sources\\SourceBundle;\n\nclass SourceBundleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Digest\\Sources\\SourceBundle@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Digest\\Sources\\SourceBundle@toArray is PROOF_READY but no test file at tests/Feature/SourceBundleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Email/CompanyMailer.php::App\\Services\\Email\\CompanyMailer::sendHtml",
        "fqmn": "App\\Services\\Email\\CompanyMailer@sendHtml",
        "expected_test_path": "tests/Feature/CompanyMailerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Email\\CompanyMailer;\n\nclass CompanyMailerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Email\\CompanyMailer@sendHtml\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendhtml_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Email\\CompanyMailer@sendHtml is PROOF_READY but no test file at tests/Feature/CompanyMailerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::generateSampleData",
        "fqmn": "App\\Services\\EmailTemplateService@generateSampleData",
        "expected_test_path": "tests/Feature/EmailTemplateServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\EmailTemplateService;\n\nclass EmailTemplateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\EmailTemplateService@generateSampleData\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatesampledata_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Services\\EmailTemplateService@generateSampleData is PROOF_READY but no test file at tests/Feature/EmailTemplateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::getAllowedPlaceholders",
        "fqmn": "App\\Services\\EmailTemplateService@getAllowedPlaceholders",
        "expected_test_path": "tests/Feature/EmailTemplateServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\EmailTemplateService;\n\nclass EmailTemplateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\EmailTemplateService@getAllowedPlaceholders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getallowedplaceholders_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\EmailTemplateService@getAllowedPlaceholders is PROOF_READY but no test file at tests/Feature/EmailTemplateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/EmailTemplateService.php::App\\Services\\EmailTemplateService::renderTemplate",
        "fqmn": "App\\Services\\EmailTemplateService@renderTemplate",
        "expected_test_path": "tests/Feature/EmailTemplateServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\EmailTemplateService;\n\nclass EmailTemplateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\EmailTemplateService@renderTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rendertemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\EmailTemplateService@renderTemplate is PROOF_READY but no test file at tests/Feature/EmailTemplateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ExecutiveOverviewService.php::App\\Services\\ExecutiveOverviewService::build",
        "fqmn": "App\\Services\\ExecutiveOverviewService@build",
        "expected_test_path": "tests/Feature/ExecutiveOverviewServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ExecutiveOverviewService;\n\nclass ExecutiveOverviewServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ExecutiveOverviewService@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ExecutiveOverviewService@build is PROOF_READY but no test file at tests/Feature/ExecutiveOverviewServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::build",
        "fqmn": "App\\Services\\ExecutiveSummaryService@build",
        "expected_test_path": "tests/Feature/ExecutiveSummaryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ExecutiveSummaryService;\n\nclass ExecutiveSummaryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ExecutiveSummaryService@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ExecutiveSummaryService@build is PROOF_READY but no test file at tests/Feature/ExecutiveSummaryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::buildKpi",
        "fqmn": "App\\Services\\ExecutiveSummaryService@buildKpi",
        "expected_test_path": "tests/Feature/ExecutiveSummaryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ExecutiveSummaryService;\n\nclass ExecutiveSummaryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ExecutiveSummaryService@buildKpi\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildkpi_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ExecutiveSummaryService@buildKpi is PROOF_READY but no test file at tests/Feature/ExecutiveSummaryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ExecutiveSummaryService.php::App\\Services\\ExecutiveSummaryService::buildOkr",
        "fqmn": "App\\Services\\ExecutiveSummaryService@buildOkr",
        "expected_test_path": "tests/Feature/ExecutiveSummaryServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ExecutiveSummaryService;\n\nclass ExecutiveSummaryServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ExecutiveSummaryService@buildOkr\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildokr_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ExecutiveSummaryService@buildOkr is PROOF_READY but no test file at tests/Feature/ExecutiveSummaryServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/FcmService.php::App\\Services\\FcmService::send",
        "fqmn": "App\\Services\\FcmService@send",
        "expected_test_path": "tests/Feature/FcmServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\FcmService;\n\nclass FcmServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\FcmService@send\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_send_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Services\\FcmService@send is PROOF_READY but no test file at tests/Feature/FcmServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/FeatureGateService.php::App\\Services\\FeatureGateService::check",
        "fqmn": "App\\Services\\FeatureGateService@check",
        "expected_test_path": "tests/Feature/FeatureGateServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\FeatureGateService;\n\nclass FeatureGateServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\FeatureGateService@check\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_check_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\FeatureGateService@check is PROOF_READY but no test file at tests/Feature/FeatureGateServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ForecastComputationService.php::App\\Services\\ForecastComputationService::build",
        "fqmn": "App\\Services\\ForecastComputationService@build",
        "expected_test_path": "tests/Feature/ForecastComputationServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ForecastComputationService;\n\nclass ForecastComputationServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ForecastComputationService@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ForecastComputationService@build is PROOF_READY but no test file at tests/Feature/ForecastComputationServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ForecastService.php::App\\Services\\ForecastService::getForecastWidgets",
        "fqmn": "App\\Services\\ForecastService@getForecastWidgets",
        "expected_test_path": "tests/Feature/ForecastServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ForecastService;\n\nclass ForecastServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ForecastService@getForecastWidgets\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getforecastwidgets_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ForecastService@getForecastWidgets is PROOF_READY but no test file at tests/Feature/ForecastServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::chatJson",
        "fqmn": "App\\Services\\GPTService@chatJson",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\GPTService;\n\nclass GPTServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GPTService@chatJson\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_chatjson_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\GPTService@chatJson is PROOF_READY but no test file at tests/Feature/GPTServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::chatPlain",
        "fqmn": "App\\Services\\GPTService@chatPlain",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\GPTService;\n\nclass GPTServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GPTService@chatPlain\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_chatplain_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\GPTService@chatPlain is PROOF_READY but no test file at tests/Feature/GPTServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::estimateCost",
        "fqmn": "App\\Services\\GPTService@estimateCost",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\GPTService;\n\nclass GPTServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GPTService@estimateCost\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_estimatecost_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GPTService@estimateCost is PROOF_READY but no test file at tests/Feature/GPTServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::generateDigestContent",
        "fqmn": "App\\Services\\GPTService@generateDigestContent",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\GPTService;\n\nclass GPTServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GPTService@generateDigestContent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatedigestcontent_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\GPTService@generateDigestContent is PROOF_READY but no test file at tests/Feature/GPTServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::generateReferralInsightsWithFile",
        "fqmn": "App\\Services\\GPTService@generateReferralInsightsWithFile",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\GPTService;\n\nclass GPTServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GPTService@generateReferralInsightsWithFile\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatereferralinsightswithfile_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\GPTService@generateReferralInsightsWithFile is PROOF_READY but no test file at tests/Feature/GPTServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::testConnection",
        "fqmn": "App\\Services\\GPTService@testConnection",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\GPTService;\n\nclass GPTServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GPTService@testConnection\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_testconnection_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GPTService@testConnection is PROOF_READY but no test file at tests/Feature/GPTServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/GPTService.php::App\\Services\\GPTService::uploadFile",
        "fqmn": "App\\Services\\GPTService@uploadFile",
        "expected_test_path": "tests/Feature/GPTServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\GPTService;\n\nclass GPTServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\GPTService@uploadFile\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_uploadfile_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\GPTService@uploadFile is PROOF_READY but no test file at tests/Feature/GPTServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/CompanyAdequacyService.php::App\\Services\\Guardrails\\CompanyAdequacyService::assess",
        "fqmn": "App\\Services\\Guardrails\\CompanyAdequacyService@assess",
        "expected_test_path": "tests/Feature/CompanyAdequacyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\CompanyAdequacyService;\n\nclass CompanyAdequacyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\CompanyAdequacyService@assess\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assess_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\CompanyAdequacyService@assess is PROOF_READY but no test file at tests/Feature/CompanyAdequacyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/CompanyAdequacyService.php::App\\Services\\Guardrails\\CompanyAdequacyService::isAdequate",
        "fqmn": "App\\Services\\Guardrails\\CompanyAdequacyService@isAdequate",
        "expected_test_path": "tests/Feature/CompanyAdequacyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\CompanyAdequacyService;\n\nclass CompanyAdequacyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\CompanyAdequacyService@isAdequate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isadequate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\CompanyAdequacyService@isAdequate is PROOF_READY but no test file at tests/Feature/CompanyAdequacyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::filterNewHires",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@filterNewHires",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\EmployeeEligibilityService;\n\nclass EmployeeEligibilityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\EmployeeEligibilityService@filterNewHires\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_filternewhires_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\EmployeeEligibilityService@filterNewHires is PROOF_READY but no test file at tests/Feature/EmployeeEligibilityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getEligibleUserIds",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getEligibleUserIds",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\EmployeeEligibilityService;\n\nclass EmployeeEligibilityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\EmployeeEligibilityService@getEligibleUserIds\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_geteligibleuserids_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\EmployeeEligibilityService@getEligibleUserIds is PROOF_READY but no test file at tests/Feature/EmployeeEligibilityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getGraceDays",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getGraceDays",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\EmployeeEligibilityService;\n\nclass EmployeeEligibilityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\EmployeeEligibilityService@getGraceDays\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getgracedays_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\EmployeeEligibilityService@getGraceDays is PROOF_READY but no test file at tests/Feature/EmployeeEligibilityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::getOnboardingCohort",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@getOnboardingCohort",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\EmployeeEligibilityService;\n\nclass EmployeeEligibilityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\EmployeeEligibilityService@getOnboardingCohort\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getonboardingcohort_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\EmployeeEligibilityService@getOnboardingCohort is PROOF_READY but no test file at tests/Feature/EmployeeEligibilityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/EmployeeEligibilityService.php::App\\Services\\Guardrails\\EmployeeEligibilityService::isNewHire",
        "fqmn": "App\\Services\\Guardrails\\EmployeeEligibilityService@isNewHire",
        "expected_test_path": "tests/Feature/EmployeeEligibilityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\EmployeeEligibilityService;\n\nclass EmployeeEligibilityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\EmployeeEligibilityService@isNewHire\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isnewhire_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\EmployeeEligibilityService@isNewHire is PROOF_READY but no test file at tests/Feature/EmployeeEligibilityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/InvestigationEligibilityService.php::App\\Services\\Guardrails\\InvestigationEligibilityService::computeRelativePerformance",
        "fqmn": "App\\Services\\Guardrails\\InvestigationEligibilityService@computeRelativePerformance",
        "expected_test_path": "tests/Feature/InvestigationEligibilityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\InvestigationEligibilityService;\n\nclass InvestigationEligibilityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\InvestigationEligibilityService@computeRelativePerformance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computerelativeperformance_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\InvestigationEligibilityService@computeRelativePerformance is PROOF_READY but no test file at tests/Feature/InvestigationEligibilityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Guardrails/InvestigationEligibilityService.php::App\\Services\\Guardrails\\InvestigationEligibilityService::evaluateUsers",
        "fqmn": "App\\Services\\Guardrails\\InvestigationEligibilityService@evaluateUsers",
        "expected_test_path": "tests/Feature/InvestigationEligibilityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Guardrails\\InvestigationEligibilityService;\n\nclass InvestigationEligibilityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Guardrails\\InvestigationEligibilityService@evaluateUsers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_evaluateusers_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Guardrails\\InvestigationEligibilityService@evaluateUsers is PROOF_READY but no test file at tests/Feature/InvestigationEligibilityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::buildSystemPromptGlobal",
        "fqmn": "App\\Services\\HelpEngine@buildSystemPromptGlobal",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HelpEngine;\n\nclass HelpEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HelpEngine@buildSystemPromptGlobal\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildsystempromptglobal_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HelpEngine@buildSystemPromptGlobal is PROOF_READY but no test file at tests/Feature/HelpEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::composeGlobal",
        "fqmn": "App\\Services\\HelpEngine@composeGlobal",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HelpEngine;\n\nclass HelpEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HelpEngine@composeGlobal\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_composeglobal_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HelpEngine@composeGlobal is PROOF_READY but no test file at tests/Feature/HelpEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::detectLocaleFromMessage",
        "fqmn": "App\\Services\\HelpEngine@detectLocaleFromMessage",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HelpEngine;\n\nclass HelpEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HelpEngine@detectLocaleFromMessage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detectlocalefrommessage_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HelpEngine@detectLocaleFromMessage is PROOF_READY but no test file at tests/Feature/HelpEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::detectRewardsProgramIntent",
        "fqmn": "App\\Services\\HelpEngine@detectRewardsProgramIntent",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HelpEngine;\n\nclass HelpEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HelpEngine@detectRewardsProgramIntent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detectrewardsprogramintent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HelpEngine@detectRewardsProgramIntent is PROOF_READY but no test file at tests/Feature/HelpEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HelpEngine.php::App\\Services\\HelpEngine::replyForDM",
        "fqmn": "App\\Services\\HelpEngine@replyForDM",
        "expected_test_path": "tests/Feature/HelpEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HelpEngine;\n\nclass HelpEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HelpEngine@replyForDM\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_replyfordm_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\HelpEngine@replyForDM is PROOF_READY but no test file at tests/Feature/HelpEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/AutomationScorer.php::App\\Services\\HireReadiness\\AutomationScorer::score",
        "fqmn": "App\\Services\\HireReadiness\\AutomationScorer@score",
        "expected_test_path": "tests/Feature/AutomationScorerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\AutomationScorer;\n\nclass AutomationScorerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\AutomationScorer@score\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_score_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\AutomationScorer@score is PROOF_READY but no test file at tests/Feature/AutomationScorerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/AutomationScorer.php::App\\Services\\HireReadiness\\AutomationScorer::scorePendingLines",
        "fqmn": "App\\Services\\HireReadiness\\AutomationScorer@scorePendingLines",
        "expected_test_path": "tests/Feature/AutomationScorerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\AutomationScorer;\n\nclass AutomationScorerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\AutomationScorer@scorePendingLines\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_scorependinglines_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\AutomationScorer@scorePendingLines is PROOF_READY but no test file at tests/Feature/AutomationScorerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DistributionPoller.php::App\\Services\\HireReadiness\\DistributionPoller::openPoll",
        "fqmn": "App\\Services\\HireReadiness\\DistributionPoller@openPoll",
        "expected_test_path": "tests/Feature/DistributionPollerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DistributionPoller;\n\nclass DistributionPollerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DistributionPoller@openPoll\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_openpoll_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DistributionPoller@openPoll is PROOF_READY but no test file at tests/Feature/DistributionPollerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DistributionPoller.php::App\\Services\\HireReadiness\\DistributionPoller::timeoutExpiredResponses",
        "fqmn": "App\\Services\\HireReadiness\\DistributionPoller@timeoutExpiredResponses",
        "expected_test_path": "tests/Feature/DistributionPollerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DistributionPoller;\n\nclass DistributionPollerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DistributionPoller@timeoutExpiredResponses\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_timeoutexpiredresponses_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DistributionPoller@timeoutExpiredResponses is PROOF_READY but no test file at tests/Feature/DistributionPollerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/AssessmentWindow.php::App\\Services\\HireReadiness\\DTO\\AssessmentWindow::buckets",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\AssessmentWindow@buckets",
        "expected_test_path": "tests/Feature/AssessmentWindowTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\AssessmentWindow;\n\nclass AssessmentWindowTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\AssessmentWindow@buckets\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buckets_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\AssessmentWindow@buckets is PROOF_READY but no test file at tests/Feature/AssessmentWindowTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::isEmpty",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@isEmpty",
        "expected_test_path": "tests/Feature/PeerSetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\PeerSet;\n\nclass PeerSetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\PeerSet@isEmpty\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isempty_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\PeerSet@isEmpty is PROOF_READY but no test file at tests/Feature/PeerSetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::size",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@size",
        "expected_test_path": "tests/Feature/PeerSetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\PeerSet;\n\nclass PeerSetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\PeerSet@size\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_size_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\PeerSet@size is PROOF_READY but no test file at tests/Feature/PeerSetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/PeerSet.php::App\\Services\\HireReadiness\\DTO\\PeerSet::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\PeerSet@toArray",
        "expected_test_path": "tests/Feature/PeerSetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\PeerSet;\n\nclass PeerSetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\PeerSet@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\PeerSet@toArray is PROOF_READY but no test file at tests/Feature/PeerSetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::excluded",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@excluded",
        "expected_test_path": "tests/Feature/TeamMetricTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\TeamMetric;\n\nclass TeamMetricTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\TeamMetric@excluded\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_excluded_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\TeamMetric@excluded is PROOF_READY but no test file at tests/Feature/TeamMetricTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::isIncluded",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isIncluded",
        "expected_test_path": "tests/Feature/TeamMetricTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\TeamMetric;\n\nclass TeamMetricTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\TeamMetric@isIncluded\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isincluded_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\TeamMetric@isIncluded is PROOF_READY but no test file at tests/Feature/TeamMetricTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::isSignificant",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@isSignificant",
        "expected_test_path": "tests/Feature/TeamMetricTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\TeamMetric;\n\nclass TeamMetricTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\TeamMetric@isSignificant\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_issignificant_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\TeamMetric@isSignificant is PROOF_READY but no test file at tests/Feature/TeamMetricTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamMetric.php::App\\Services\\HireReadiness\\DTO\\TeamMetric::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamMetric@toArray",
        "expected_test_path": "tests/Feature/TeamMetricTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\TeamMetric;\n\nclass TeamMetricTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\TeamMetric@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\TeamMetric@toArray is PROOF_READY but no test file at tests/Feature/TeamMetricTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::includedMetrics",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@includedMetrics",
        "expected_test_path": "tests/Feature/TeamSignalSnapshotTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot;\n\nclass TeamSignalSnapshotTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@includedMetrics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_includedmetrics_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@includedMetrics is PROOF_READY but no test file at tests/Feature/TeamSignalSnapshotTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::metric",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@metric",
        "expected_test_path": "tests/Feature/TeamSignalSnapshotTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot;\n\nclass TeamSignalSnapshotTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@metric\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_metric_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@metric is PROOF_READY but no test file at tests/Feature/TeamSignalSnapshotTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/DTO/TeamSignalSnapshot.php::App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot::toArray",
        "fqmn": "App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@toArray",
        "expected_test_path": "tests/Feature/TeamSignalSnapshotTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot;\n\nclass TeamSignalSnapshotTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@toArray\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toarray_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\DTO\\TeamSignalSnapshot@toArray is PROOF_READY but no test file at tests/Feature/TeamSignalSnapshotTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::closePollAndAssess",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@closePollAndAssess",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\HireRequestPipeline;\n\nclass HireRequestPipelineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\HireRequestPipeline@closePollAndAssess\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_closepollandassess_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\HireRequestPipeline@closePollAndAssess is PROOF_READY but no test file at tests/Feature/HireRequestPipelineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::decomposeJd",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@decomposeJd",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\HireRequestPipeline;\n\nclass HireRequestPipelineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\HireRequestPipeline@decomposeJd\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_decomposejd_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\HireRequestPipeline@decomposeJd is PROOF_READY but no test file at tests/Feature/HireRequestPipelineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::generateNarrative",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@generateNarrative",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\HireRequestPipeline;\n\nclass HireRequestPipelineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\HireRequestPipeline@generateNarrative\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatenarrative_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\HireRequestPipeline@generateNarrative is PROOF_READY but no test file at tests/Feature/HireRequestPipelineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::submitForApproval",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@submitForApproval",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\HireRequestPipeline;\n\nclass HireRequestPipelineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\HireRequestPipeline@submitForApproval\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_submitforapproval_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\HireRequestPipeline@submitForApproval is PROOF_READY but no test file at tests/Feature/HireRequestPipelineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPipeline.php::App\\Services\\HireReadiness\\HireRequestPipeline::submitForPoll",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPipeline@submitForPoll",
        "expected_test_path": "tests/Feature/HireRequestPipelineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\HireRequestPipeline;\n\nclass HireRequestPipelineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\HireRequestPipeline@submitForPoll\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_submitforpoll_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\HireRequestPipeline@submitForPoll is PROOF_READY but no test file at tests/Feature/HireRequestPipelineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/HireRequestPublisher.php::App\\Services\\HireReadiness\\HireRequestPublisher::publish",
        "fqmn": "App\\Services\\HireReadiness\\HireRequestPublisher@publish",
        "expected_test_path": "tests/Feature/HireRequestPublisherTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\HireRequestPublisher;\n\nclass HireRequestPublisherTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\HireRequestPublisher@publish\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_publish_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\HireRequestPublisher@publish is PROOF_READY but no test file at tests/Feature/HireRequestPublisherTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/JdDecomposer.php::App\\Services\\HireReadiness\\JdDecomposer::decompose",
        "fqmn": "App\\Services\\HireReadiness\\JdDecomposer@decompose",
        "expected_test_path": "tests/Feature/JdDecomposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\JdDecomposer;\n\nclass JdDecomposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\JdDecomposer@decompose\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_decompose_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\JdDecomposer@decompose is PROOF_READY but no test file at tests/Feature/JdDecomposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/JdDecomposer.php::App\\Services\\HireReadiness\\JdDecomposer::decomposeAndPersist",
        "fqmn": "App\\Services\\HireReadiness\\JdDecomposer@decomposeAndPersist",
        "expected_test_path": "tests/Feature/JdDecomposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\JdDecomposer;\n\nclass JdDecomposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\JdDecomposer@decomposeAndPersist\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_decomposeandpersist_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\JdDecomposer@decomposeAndPersist is PROOF_READY but no test file at tests/Feature/JdDecomposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/PeerSetResolver.php::App\\Services\\HireReadiness\\PeerSetResolver::resolve",
        "fqmn": "App\\Services\\HireReadiness\\PeerSetResolver@resolve",
        "expected_test_path": "tests/Feature/PeerSetResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\PeerSetResolver;\n\nclass PeerSetResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\PeerSetResolver@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\PeerSetResolver@resolve is PROOF_READY but no test file at tests/Feature/PeerSetResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/PromotionMatcher.php::App\\Services\\HireReadiness\\PromotionMatcher::matchPendingLines",
        "fqmn": "App\\Services\\HireReadiness\\PromotionMatcher@matchPendingLines",
        "expected_test_path": "tests/Feature/PromotionMatcherTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\PromotionMatcher;\n\nclass PromotionMatcherTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\PromotionMatcher@matchPendingLines\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_matchpendinglines_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\PromotionMatcher@matchPendingLines is PROOF_READY but no test file at tests/Feature/PromotionMatcherTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/RequesterTrackRecord.php::App\\Services\\HireReadiness\\RequesterTrackRecord::forUser",
        "fqmn": "App\\Services\\HireReadiness\\RequesterTrackRecord@forUser",
        "expected_test_path": "tests/Feature/RequesterTrackRecordTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\RequesterTrackRecord;\n\nclass RequesterTrackRecordTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\RequesterTrackRecord@forUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_foruser_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\RequesterTrackRecord@forUser is PROOF_READY but no test file at tests/Feature/RequesterTrackRecordTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/AttritionRisk.php::App\\Services\\HireReadiness\\Signals\\AttritionRisk::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\AttritionRisk@compute",
        "expected_test_path": "tests/Feature/AttritionRiskTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\AttritionRisk;\n\nclass AttritionRiskTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\AttritionRisk@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\AttritionRisk@compute is PROOF_READY but no test file at tests/Feature/AttritionRiskTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/AttritionRisk.php::App\\Services\\HireReadiness\\Signals\\AttritionRisk::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\AttritionRisk@key",
        "expected_test_path": "tests/Feature/AttritionRiskTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\AttritionRisk;\n\nclass AttritionRiskTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\AttritionRisk@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\AttritionRisk@key is PROOF_READY but no test file at tests/Feature/AttritionRiskTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/BadgeDistribution.php::App\\Services\\HireReadiness\\Signals\\BadgeDistribution::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute",
        "expected_test_path": "tests/Feature/BadgeDistributionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\BadgeDistribution;\n\nclass BadgeDistributionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\BadgeDistribution@compute is PROOF_READY but no test file at tests/Feature/BadgeDistributionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/BadgeDistribution.php::App\\Services\\HireReadiness\\Signals\\BadgeDistribution::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\BadgeDistribution@key",
        "expected_test_path": "tests/Feature/BadgeDistributionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\BadgeDistribution;\n\nclass BadgeDistributionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\BadgeDistribution@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\BadgeDistribution@key is PROOF_READY but no test file at tests/Feature/BadgeDistributionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/GiniCoefficient.php::App\\Services\\HireReadiness\\Signals\\GiniCoefficient::gini",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\GiniCoefficient@gini",
        "expected_test_path": "tests/Feature/GiniCoefficientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\GiniCoefficient;\n\nclass GiniCoefficientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\GiniCoefficient@gini\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gini_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\GiniCoefficient@gini is PROOF_READY but no test file at tests/Feature/GiniCoefficientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/HeadcountTrend.php::App\\Services\\HireReadiness\\Signals\\HeadcountTrend::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute",
        "expected_test_path": "tests/Feature/HeadcountTrendTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\HeadcountTrend;\n\nclass HeadcountTrendTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\HeadcountTrend@compute is PROOF_READY but no test file at tests/Feature/HeadcountTrendTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/HeadcountTrend.php::App\\Services\\HireReadiness\\Signals\\HeadcountTrend::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\HeadcountTrend@key",
        "expected_test_path": "tests/Feature/HeadcountTrendTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\HeadcountTrend;\n\nclass HeadcountTrendTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\HeadcountTrend@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\HeadcountTrend@key is PROOF_READY but no test file at tests/Feature/HeadcountTrendTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/ReactionDepth.php::App\\Services\\HireReadiness\\Signals\\ReactionDepth::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute",
        "expected_test_path": "tests/Feature/ReactionDepthTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\ReactionDepth;\n\nclass ReactionDepthTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\ReactionDepth@compute is PROOF_READY but no test file at tests/Feature/ReactionDepthTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/ReactionDepth.php::App\\Services\\HireReadiness\\Signals\\ReactionDepth::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\ReactionDepth@key",
        "expected_test_path": "tests/Feature/ReactionDepthTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\ReactionDepth;\n\nclass ReactionDepthTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\ReactionDepth@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\ReactionDepth@key is PROOF_READY but no test file at tests/Feature/ReactionDepthTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/RecentHireFlag.php::App\\Services\\HireReadiness\\Signals\\RecentHireFlag::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecentHireFlag@compute",
        "expected_test_path": "tests/Feature/RecentHireFlagTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\RecentHireFlag;\n\nclass RecentHireFlagTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\RecentHireFlag@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\RecentHireFlag@compute is PROOF_READY but no test file at tests/Feature/RecentHireFlagTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/RecentHireFlag.php::App\\Services\\HireReadiness\\Signals\\RecentHireFlag::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecentHireFlag@key",
        "expected_test_path": "tests/Feature/RecentHireFlagTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\RecentHireFlag;\n\nclass RecentHireFlagTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\RecentHireFlag@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\RecentHireFlag@key is PROOF_READY but no test file at tests/Feature/RecentHireFlagTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/RecognitionVelocity.php::App\\Services\\HireReadiness\\Signals\\RecognitionVelocity::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@compute",
        "expected_test_path": "tests/Feature/RecognitionVelocityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\RecognitionVelocity;\n\nclass RecognitionVelocityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@compute is PROOF_READY but no test file at tests/Feature/RecognitionVelocityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/RecognitionVelocity.php::App\\Services\\HireReadiness\\Signals\\RecognitionVelocity::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@key",
        "expected_test_path": "tests/Feature/RecognitionVelocityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\RecognitionVelocity;\n\nclass RecognitionVelocityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\RecognitionVelocity@key is PROOF_READY but no test file at tests/Feature/RecognitionVelocityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskCycleTime.php::App\\Services\\HireReadiness\\Signals\\TaskCycleTime::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@compute",
        "expected_test_path": "tests/Feature/TaskCycleTimeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\TaskCycleTime;\n\nclass TaskCycleTimeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\TaskCycleTime@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\TaskCycleTime@compute is PROOF_READY but no test file at tests/Feature/TaskCycleTimeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskCycleTime.php::App\\Services\\HireReadiness\\Signals\\TaskCycleTime::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskCycleTime@key",
        "expected_test_path": "tests/Feature/TaskCycleTimeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\TaskCycleTime;\n\nclass TaskCycleTimeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\TaskCycleTime@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\TaskCycleTime@key is PROOF_READY but no test file at tests/Feature/TaskCycleTimeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskThroughput.php::App\\Services\\HireReadiness\\Signals\\TaskThroughput::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@compute",
        "expected_test_path": "tests/Feature/TaskThroughputTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\TaskThroughput;\n\nclass TaskThroughputTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\TaskThroughput@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\TaskThroughput@compute is PROOF_READY but no test file at tests/Feature/TaskThroughputTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/TaskThroughput.php::App\\Services\\HireReadiness\\Signals\\TaskThroughput::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TaskThroughput@key",
        "expected_test_path": "tests/Feature/TaskThroughputTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\TaskThroughput;\n\nclass TaskThroughputTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\TaskThroughput@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\TaskThroughput@key is PROOF_READY but no test file at tests/Feature/TaskThroughputTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/TenureMix.php::App\\Services\\HireReadiness\\Signals\\TenureMix::compute",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@compute",
        "expected_test_path": "tests/Feature/TenureMixTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\TenureMix;\n\nclass TenureMixTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\TenureMix@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\TenureMix@compute is PROOF_READY but no test file at tests/Feature/TenureMixTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Signals/TenureMix.php::App\\Services\\HireReadiness\\Signals\\TenureMix::key",
        "fqmn": "App\\Services\\HireReadiness\\Signals\\TenureMix@key",
        "expected_test_path": "tests/Feature/TenureMixTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Signals\\TenureMix;\n\nclass TenureMixTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Signals\\TenureMix@key\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_key_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Signals\\TenureMix@key is PROOF_READY but no test file at tests/Feature/TenureMixTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/ConfidenceClassifier.php::App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier::classify",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier@classify",
        "expected_test_path": "tests/Feature/ConfidenceClassifierTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier;\n\nclass ConfidenceClassifierTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier@classify\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_classify_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\ConfidenceClassifier@classify is PROOF_READY but no test file at tests/Feature/ConfidenceClassifierTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/CoverageScore.php::App\\Services\\HireReadiness\\Statistics\\CoverageScore::compute",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\CoverageScore@compute",
        "expected_test_path": "tests/Feature/CoverageScoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\CoverageScore;\n\nclass CoverageScoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\CoverageScore@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\CoverageScore@compute is PROOF_READY but no test file at tests/Feature/CoverageScoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/CoverageScore.php::App\\Services\\HireReadiness\\Statistics\\CoverageScore::rollupConfidence",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\CoverageScore@rollupConfidence",
        "expected_test_path": "tests/Feature/CoverageScoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\CoverageScore;\n\nclass CoverageScoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\CoverageScore@rollupConfidence\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rollupconfidence_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\CoverageScore@rollupConfidence is PROOF_READY but no test file at tests/Feature/CoverageScoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::coefficientOfVariation",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation",
        "expected_test_path": "tests/Feature/DescriptiveStatisticsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics;\n\nclass DescriptiveStatisticsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_coefficientofvariation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@coefficientOfVariation is PROOF_READY but no test file at tests/Feature/DescriptiveStatisticsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::confidenceInterval95",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@confidenceInterval95",
        "expected_test_path": "tests/Feature/DescriptiveStatisticsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics;\n\nclass DescriptiveStatisticsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@confidenceInterval95\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_confidenceinterval95_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@confidenceInterval95 is PROOF_READY but no test file at tests/Feature/DescriptiveStatisticsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/DescriptiveStatistics.php::App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics::stddev",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@stddev",
        "expected_test_path": "tests/Feature/DescriptiveStatisticsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics;\n\nclass DescriptiveStatisticsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@stddev\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_stddev_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\DescriptiveStatistics@stddev is PROOF_READY but no test file at tests/Feature/DescriptiveStatisticsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/PercentileRank.php::App\\Services\\HireReadiness\\Statistics\\PercentileRank::compute",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\PercentileRank@compute",
        "expected_test_path": "tests/Feature/PercentileRankTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\PercentileRank;\n\nclass PercentileRankTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\PercentileRank@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\PercentileRank@compute is PROOF_READY but no test file at tests/Feature/PercentileRankTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/SignificanceTest.php::App\\Services\\HireReadiness\\Statistics\\SignificanceTest::againstPeerMean",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\SignificanceTest@againstPeerMean",
        "expected_test_path": "tests/Feature/SignificanceTestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\SignificanceTest;\n\nclass SignificanceTestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\SignificanceTest@againstPeerMean\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_againstpeermean_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\SignificanceTest@againstPeerMean is PROOF_READY but no test file at tests/Feature/SignificanceTestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/Statistics/TrendAnalysis.php::App\\Services\\HireReadiness\\Statistics\\TrendAnalysis::ols",
        "fqmn": "App\\Services\\HireReadiness\\Statistics\\TrendAnalysis@ols",
        "expected_test_path": "tests/Feature/TrendAnalysisTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\Statistics\\TrendAnalysis;\n\nclass TrendAnalysisTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\Statistics\\TrendAnalysis@ols\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_ols_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\Statistics\\TrendAnalysis@ols is PROOF_READY but no test file at tests/Feature/TrendAnalysisTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/TeamHiringHistory.php::App\\Services\\HireReadiness\\TeamHiringHistory::forTeam",
        "fqmn": "App\\Services\\HireReadiness\\TeamHiringHistory@forTeam",
        "expected_test_path": "tests/Feature/TeamHiringHistoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\TeamHiringHistory;\n\nclass TeamHiringHistoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\TeamHiringHistory@forTeam\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forteam_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\TeamHiringHistory@forTeam is PROOF_READY but no test file at tests/Feature/TeamHiringHistoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/TeamSignalStatistics.php::App\\Services\\HireReadiness\\TeamSignalStatistics::compute",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@compute",
        "expected_test_path": "tests/Feature/TeamSignalStatisticsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\TeamSignalStatistics;\n\nclass TeamSignalStatisticsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\TeamSignalStatistics@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\TeamSignalStatistics@compute is PROOF_READY but no test file at tests/Feature/TeamSignalStatisticsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/HireReadiness/TeamSignalStatistics.php::App\\Services\\HireReadiness\\TeamSignalStatistics::signals",
        "fqmn": "App\\Services\\HireReadiness\\TeamSignalStatistics@signals",
        "expected_test_path": "tests/Feature/TeamSignalStatisticsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\HireReadiness\\TeamSignalStatistics;\n\nclass TeamSignalStatisticsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\HireReadiness\\TeamSignalStatistics@signals\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_signals_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\HireReadiness\\TeamSignalStatistics@signals is PROOF_READY but no test file at tests/Feature/TeamSignalStatisticsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::enrichContextWithExternalData",
        "fqmn": "App\\Services\\InferenceEngine@enrichContextWithExternalData",
        "expected_test_path": "tests/Feature/InferenceEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InferenceEngine;\n\nclass InferenceEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InferenceEngine@enrichContextWithExternalData\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_enrichcontextwithexternaldata_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\InferenceEngine@enrichContextWithExternalData is PROOF_READY but no test file at tests/Feature/InferenceEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::generateContextProfile",
        "fqmn": "App\\Services\\InferenceEngine@generateContextProfile",
        "expected_test_path": "tests/Feature/InferenceEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InferenceEngine;\n\nclass InferenceEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InferenceEngine@generateContextProfile\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatecontextprofile_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\InferenceEngine@generateContextProfile is PROOF_READY but no test file at tests/Feature/InferenceEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InferenceEngine.php::App\\Services\\InferenceEngine::validateContextProfile",
        "fqmn": "App\\Services\\InferenceEngine@validateContextProfile",
        "expected_test_path": "tests/Feature/InferenceEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InferenceEngine;\n\nclass InferenceEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InferenceEngine@validateContextProfile\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatecontextprofile_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\InferenceEngine@validateContextProfile is PROOF_READY but no test file at tests/Feature/InferenceEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createOrderInvoice",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createOrderInvoice",
        "expected_test_path": "tests/Feature/InvoiceOrchestratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceOrchestrator;\n\nclass InvoiceOrchestratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceOrchestrator@createOrderInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createorderinvoice_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceOrchestrator@createOrderInvoice is PROOF_READY but no test file at tests/Feature/InvoiceOrchestratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createPlanInvoiceFromCharge",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createPlanInvoiceFromCharge",
        "expected_test_path": "tests/Feature/InvoiceOrchestratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceOrchestrator;\n\nclass InvoiceOrchestratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceOrchestrator@createPlanInvoiceFromCharge\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createplaninvoicefromcharge_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceOrchestrator@createPlanInvoiceFromCharge is PROOF_READY but no test file at tests/Feature/InvoiceOrchestratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceOrchestrator.php::App\\Services\\InvoiceOrchestrator::createWalletReceipt",
        "fqmn": "App\\Services\\InvoiceOrchestrator@createWalletReceipt",
        "expected_test_path": "tests/Feature/InvoiceOrchestratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceOrchestrator;\n\nclass InvoiceOrchestratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceOrchestrator@createWalletReceipt\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createwalletreceipt_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceOrchestrator@createWalletReceipt is PROOF_READY but no test file at tests/Feature/InvoiceOrchestratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::cleanupDraftInvoices",
        "fqmn": "App\\Services\\InvoiceWorkflowService@cleanupDraftInvoices",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceWorkflowService;\n\nclass InvoiceWorkflowServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceWorkflowService@cleanupDraftInvoices\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cleanupdraftinvoices_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceWorkflowService@cleanupDraftInvoices is PROOF_READY but no test file at tests/Feature/InvoiceWorkflowServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::createInvoiceIfReady",
        "fqmn": "App\\Services\\InvoiceWorkflowService@createInvoiceIfReady",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceWorkflowService;\n\nclass InvoiceWorkflowServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceWorkflowService@createInvoiceIfReady\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createinvoiceifready_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceWorkflowService@createInvoiceIfReady is PROOF_READY but no test file at tests/Feature/InvoiceWorkflowServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::getWorkflowStatus",
        "fqmn": "App\\Services\\InvoiceWorkflowService@getWorkflowStatus",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceWorkflowService;\n\nclass InvoiceWorkflowServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceWorkflowService@getWorkflowStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getworkflowstatus_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceWorkflowService@getWorkflowStatus is PROOF_READY but no test file at tests/Feature/InvoiceWorkflowServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingAdvancesSince",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingAdvancesSince",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceWorkflowService;\n\nclass InvoiceWorkflowServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceWorkflowService@processPendingAdvancesSince\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_processpendingadvancessince_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceWorkflowService@processPendingAdvancesSince is PROOF_READY but no test file at tests/Feature/InvoiceWorkflowServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingInvoices",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingInvoices",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceWorkflowService;\n\nclass InvoiceWorkflowServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceWorkflowService@processPendingInvoices\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_processpendinginvoices_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceWorkflowService@processPendingInvoices is PROOF_READY but no test file at tests/Feature/InvoiceWorkflowServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/InvoiceWorkflowService.php::App\\Services\\InvoiceWorkflowService::processPendingInvoicesSince",
        "fqmn": "App\\Services\\InvoiceWorkflowService@processPendingInvoicesSince",
        "expected_test_path": "tests/Feature/InvoiceWorkflowServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\InvoiceWorkflowService;\n\nclass InvoiceWorkflowServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\InvoiceWorkflowService@processPendingInvoicesSince\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_processpendinginvoicessince_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\InvoiceWorkflowService@processPendingInvoicesSince is PROOF_READY but no test file at tests/Feature/InvoiceWorkflowServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::createJob",
        "fqmn": "App\\Services\\JobService@createJob",
        "expected_test_path": "tests/Feature/JobServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\JobService;\n\nclass JobServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\JobService@createJob\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createjob_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\JobService@createJob is PROOF_READY but no test file at tests/Feature/JobServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::createReferral",
        "fqmn": "App\\Services\\JobService@createReferral",
        "expected_test_path": "tests/Feature/JobServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\JobService;\n\nclass JobServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\JobService@createReferral\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createreferral_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\JobService@createReferral is PROOF_READY but no test file at tests/Feature/JobServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/JobService.php::App\\Services\\JobService::updateJobStatus",
        "fqmn": "App\\Services\\JobService@updateJobStatus",
        "expected_test_path": "tests/Feature/JobServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\JobService;\n\nclass JobServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\JobService@updateJobStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_updatejobstatus_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\JobService@updateJobStatus is PROOF_READY but no test file at tests/Feature/JobServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::classifyDocument",
        "fqmn": "App\\Services\\KieClassifierService@classifyDocument",
        "expected_test_path": "tests/Feature/KieClassifierServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\KieClassifierService;\n\nclass KieClassifierServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\KieClassifierService@classifyDocument\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_classifydocument_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\KieClassifierService@classifyDocument is PROOF_READY but no test file at tests/Feature/KieClassifierServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::confirmDocumentType",
        "fqmn": "App\\Services\\KieClassifierService@confirmDocumentType",
        "expected_test_path": "tests/Feature/KieClassifierServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\KieClassifierService;\n\nclass KieClassifierServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\KieClassifierService@confirmDocumentType\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_confirmdocumenttype_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\KieClassifierService@confirmDocumentType is PROOF_READY but no test file at tests/Feature/KieClassifierServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::getClassificationDisplay",
        "fqmn": "App\\Services\\KieClassifierService@getClassificationDisplay",
        "expected_test_path": "tests/Feature/KieClassifierServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\KieClassifierService;\n\nclass KieClassifierServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\KieClassifierService@getClassificationDisplay\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getclassificationdisplay_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\KieClassifierService@getClassificationDisplay is PROOF_READY but no test file at tests/Feature/KieClassifierServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/KieClassifierService.php::App\\Services\\KieClassifierService::shouldClassifyDocument",
        "fqmn": "App\\Services\\KieClassifierService@shouldClassifyDocument",
        "expected_test_path": "tests/Feature/KieClassifierServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\KieClassifierService;\n\nclass KieClassifierServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\KieClassifierService@shouldClassifyDocument\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_shouldclassifydocument_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\KieClassifierService@shouldClassifyDocument is PROOF_READY but no test file at tests/Feature/KieClassifierServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::getDepartmentKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@getDepartmentKnowledge",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\KnowledgeService;\n\nclass KnowledgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\KnowledgeService@getDepartmentKnowledge\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdepartmentknowledge_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\KnowledgeService@getDepartmentKnowledge is PROOF_READY but no test file at tests/Feature/KnowledgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::getNameKnowledge",
        "fqmn": "App\\Services\\KnowledgeService@getNameKnowledge",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\KnowledgeService;\n\nclass KnowledgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\KnowledgeService@getNameKnowledge\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getnameknowledge_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\KnowledgeService@getNameKnowledge is PROOF_READY but no test file at tests/Feature/KnowledgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::normalizeDeptKey",
        "fqmn": "App\\Services\\KnowledgeService@normalizeDeptKey",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\KnowledgeService;\n\nclass KnowledgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\KnowledgeService@normalizeDeptKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_normalizedeptkey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\KnowledgeService@normalizeDeptKey is PROOF_READY but no test file at tests/Feature/KnowledgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/KnowledgeService.php::App\\Services\\KnowledgeService::normalizeNameKey",
        "fqmn": "App\\Services\\KnowledgeService@normalizeNameKey",
        "expected_test_path": "tests/Feature/KnowledgeServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\KnowledgeService;\n\nclass KnowledgeServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\KnowledgeService@normalizeNameKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_normalizenamekey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\KnowledgeService@normalizeNameKey is PROOF_READY but no test file at tests/Feature/KnowledgeServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getInfluenceReachDepth",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth",
        "expected_test_path": "tests/Feature/LeadershipEffectivenessServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\LeadershipEffectivenessService;\n\nclass LeadershipEffectivenessServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getinfluencereachdepth_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\LeadershipEffectivenessService@getInfluenceReachDepth is PROOF_READY but no test file at tests/Feature/LeadershipEffectivenessServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getManagerCoverageQuality",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerCoverageQuality",
        "expected_test_path": "tests/Feature/LeadershipEffectivenessServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\LeadershipEffectivenessService;\n\nclass LeadershipEffectivenessServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\LeadershipEffectivenessService@getManagerCoverageQuality\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmanagercoveragequality_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\LeadershipEffectivenessService@getManagerCoverageQuality is PROOF_READY but no test file at tests/Feature/LeadershipEffectivenessServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::getManagerLatencyToRecognize",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@getManagerLatencyToRecognize",
        "expected_test_path": "tests/Feature/LeadershipEffectivenessServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\LeadershipEffectivenessService;\n\nclass LeadershipEffectivenessServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\LeadershipEffectivenessService@getManagerLatencyToRecognize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmanagerlatencytorecognize_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\LeadershipEffectivenessService@getManagerLatencyToRecognize is PROOF_READY but no test file at tests/Feature/LeadershipEffectivenessServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/LeadershipEffectivenessService.php::App\\Services\\LeadershipEffectivenessService::summaries",
        "fqmn": "App\\Services\\LeadershipEffectivenessService@summaries",
        "expected_test_path": "tests/Feature/LeadershipEffectivenessServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\LeadershipEffectivenessService;\n\nclass LeadershipEffectivenessServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\LeadershipEffectivenessService@summaries\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_summaries_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\LeadershipEffectivenessService@summaries is PROOF_READY but no test file at tests/Feature/LeadershipEffectivenessServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::getCanonicalKeys",
        "fqmn": "App\\Services\\MappingService@getCanonicalKeys",
        "expected_test_path": "tests/Feature/MappingServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\MappingService;\n\nclass MappingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\MappingService@getCanonicalKeys\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcanonicalkeys_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\MappingService@getCanonicalKeys is PROOF_READY but no test file at tests/Feature/MappingServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::suggestMapping",
        "fqmn": "App\\Services\\MappingService@suggestMapping",
        "expected_test_path": "tests/Feature/MappingServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\MappingService;\n\nclass MappingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\MappingService@suggestMapping\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_suggestmapping_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\MappingService@suggestMapping is PROOF_READY but no test file at tests/Feature/MappingServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/MappingService.php::App\\Services\\MappingService::suggestMappingDetailed",
        "fqmn": "App\\Services\\MappingService@suggestMappingDetailed",
        "expected_test_path": "tests/Feature/MappingServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\MappingService;\n\nclass MappingServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\MappingService@suggestMappingDetailed\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_suggestmappingdetailed_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\MappingService@suggestMappingDetailed is PROOF_READY but no test file at tests/Feature/MappingServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/MetricConflictDetector.php::App\\Services\\Metrics\\MetricConflictDetector::assertNoUnresolvedConflicts",
        "fqmn": "App\\Services\\Metrics\\MetricConflictDetector@assertNoUnresolvedConflicts",
        "expected_test_path": "tests/Feature/MetricConflictDetectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\MetricConflictDetector;\n\nclass MetricConflictDetectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\MetricConflictDetector@assertNoUnresolvedConflicts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assertnounresolvedconflicts_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\MetricConflictDetector@assertNoUnresolvedConflicts is PROOF_READY but no test file at tests/Feature/MetricConflictDetectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/MetricConflictDetector.php::App\\Services\\Metrics\\MetricConflictDetector::detectConflicts",
        "fqmn": "App\\Services\\Metrics\\MetricConflictDetector@detectConflicts",
        "expected_test_path": "tests/Feature/MetricConflictDetectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\MetricConflictDetector;\n\nclass MetricConflictDetectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\MetricConflictDetector@detectConflicts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_detectconflicts_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\MetricConflictDetector@detectConflicts is PROOF_READY but no test file at tests/Feature/MetricConflictDetectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::get",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@get",
        "expected_test_path": "tests/Feature/MetricSnapshotStoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\MetricSnapshotStore;\n\nclass MetricSnapshotStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\MetricSnapshotStore@get\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_get_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\MetricSnapshotStore@get is PROOF_READY but no test file at tests/Feature/MetricSnapshotStoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::getFallbackPayload",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@getFallbackPayload",
        "expected_test_path": "tests/Feature/MetricSnapshotStoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\MetricSnapshotStore;\n\nclass MetricSnapshotStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\MetricSnapshotStore@getFallbackPayload\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfallbackpayload_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\MetricSnapshotStore@getFallbackPayload is PROOF_READY but no test file at tests/Feature/MetricSnapshotStoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::getFallbackResult",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@getFallbackResult",
        "expected_test_path": "tests/Feature/MetricSnapshotStoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\MetricSnapshotStore;\n\nclass MetricSnapshotStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\MetricSnapshotStore@getFallbackResult\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfallbackresult_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\MetricSnapshotStore@getFallbackResult is PROOF_READY but no test file at tests/Feature/MetricSnapshotStoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/MetricSnapshotStore.php::App\\Services\\Metrics\\MetricSnapshotStore::store",
        "fqmn": "App\\Services\\Metrics\\MetricSnapshotStore@store",
        "expected_test_path": "tests/Feature/MetricSnapshotStoreTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\MetricSnapshotStore;\n\nclass MetricSnapshotStoreTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\MetricSnapshotStore@store\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_store_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\MetricSnapshotStore@store is PROOF_READY but no test file at tests/Feature/MetricSnapshotStoreTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/SnapshotShapeAdapter.php::App\\Services\\Metrics\\SnapshotShapeAdapter::toLegacyWidgetData",
        "fqmn": "App\\Services\\Metrics\\SnapshotShapeAdapter@toLegacyWidgetData",
        "expected_test_path": "tests/Feature/SnapshotShapeAdapterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\SnapshotShapeAdapter;\n\nclass SnapshotShapeAdapterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\SnapshotShapeAdapter@toLegacyWidgetData\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tolegacywidgetdata_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\SnapshotShapeAdapter@toLegacyWidgetData is PROOF_READY but no test file at tests/Feature/SnapshotShapeAdapterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/SnapshotShapeAdapter.php::App\\Services\\Metrics\\SnapshotShapeAdapter::toMetricSnapshotPayload",
        "fqmn": "App\\Services\\Metrics\\SnapshotShapeAdapter@toMetricSnapshotPayload",
        "expected_test_path": "tests/Feature/SnapshotShapeAdapterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\SnapshotShapeAdapter;\n\nclass SnapshotShapeAdapterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\SnapshotShapeAdapter@toMetricSnapshotPayload\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tometricsnapshotpayload_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\SnapshotShapeAdapter@toMetricSnapshotPayload is PROOF_READY but no test file at tests/Feature/SnapshotShapeAdapterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::all",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@all",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\WidgetMetadataRegistry;\n\nclass WidgetMetadataRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\WidgetMetadataRegistry@all\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_all_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\WidgetMetadataRegistry@all is PROOF_READY but no test file at tests/Feature/WidgetMetadataRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::definition",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@definition",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\WidgetMetadataRegistry;\n\nclass WidgetMetadataRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\WidgetMetadataRegistry@definition\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_definition_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\WidgetMetadataRegistry@definition is PROOF_READY but no test file at tests/Feature/WidgetMetadataRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::disambiguator",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@disambiguator",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\WidgetMetadataRegistry;\n\nclass WidgetMetadataRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\WidgetMetadataRegistry@disambiguator\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_disambiguator_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\WidgetMetadataRegistry@disambiguator is PROOF_READY but no test file at tests/Feature/WidgetMetadataRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::displayName",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@displayName",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\WidgetMetadataRegistry;\n\nclass WidgetMetadataRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\WidgetMetadataRegistry@displayName\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_displayname_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\WidgetMetadataRegistry@displayName is PROOF_READY but no test file at tests/Feature/WidgetMetadataRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::formula",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@formula",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\WidgetMetadataRegistry;\n\nclass WidgetMetadataRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\WidgetMetadataRegistry@formula\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formula_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\WidgetMetadataRegistry@formula is PROOF_READY but no test file at tests/Feature/WidgetMetadataRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::get",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@get",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\WidgetMetadataRegistry;\n\nclass WidgetMetadataRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\WidgetMetadataRegistry@get\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_get_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\WidgetMetadataRegistry@get is PROOF_READY but no test file at tests/Feature/WidgetMetadataRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Metrics/WidgetMetadataRegistry.php::App\\Services\\Metrics\\WidgetMetadataRegistry::glossary",
        "fqmn": "App\\Services\\Metrics\\WidgetMetadataRegistry@glossary",
        "expected_test_path": "tests/Feature/WidgetMetadataRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Metrics\\WidgetMetadataRegistry;\n\nclass WidgetMetadataRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Metrics\\WidgetMetadataRegistry@glossary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_glossary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Metrics\\WidgetMetadataRegistry@glossary is PROOF_READY but no test file at tests/Feature/WidgetMetadataRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::canUseOccasion",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@canUseOccasion",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\FeatureGate;\n\nclass FeatureGateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\FeatureGate@canUseOccasion\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canuseoccasion_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\FeatureGate@canUseOccasion is PROOF_READY but no test file at tests/Feature/FeatureGateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getAvailableFeatures",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getAvailableFeatures",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\FeatureGate;\n\nclass FeatureGateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\FeatureGate@getAvailableFeatures\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getavailablefeatures_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\FeatureGate@getAvailableFeatures is PROOF_READY but no test file at tests/Feature/FeatureGateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getFeatureDescription",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getFeatureDescription",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\FeatureGate;\n\nclass FeatureGateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\FeatureGate@getFeatureDescription\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfeaturedescription_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\FeatureGate@getFeatureDescription is PROOF_READY but no test file at tests/Feature/FeatureGateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getFeatureLimits",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getFeatureLimits",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\FeatureGate;\n\nclass FeatureGateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\FeatureGate@getFeatureLimits\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getfeaturelimits_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\FeatureGate@getFeatureLimits is PROOF_READY but no test file at tests/Feature/FeatureGateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/FeatureGate.php::App\\Services\\Occasions\\FeatureGate::getRequiredPlanLevel",
        "fqmn": "App\\Services\\Occasions\\FeatureGate@getRequiredPlanLevel",
        "expected_test_path": "tests/Feature/FeatureGateTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\FeatureGate;\n\nclass FeatureGateTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\FeatureGate@getRequiredPlanLevel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrequiredplanlevel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\FeatureGate@getRequiredPlanLevel is PROOF_READY but no test file at tests/Feature/FeatureGateTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/ManagerResolver.php::App\\Services\\Occasions\\ManagerResolver::getManagerRecipientsFor",
        "fqmn": "App\\Services\\Occasions\\ManagerResolver@getManagerRecipientsFor",
        "expected_test_path": "tests/Feature/ManagerResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\ManagerResolver;\n\nclass ManagerResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\ManagerResolver@getManagerRecipientsFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmanagerrecipientsfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\ManagerResolver@getManagerRecipientsFor is PROOF_READY but no test file at tests/Feature/ManagerResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/OccasionRenderer.php::App\\Services\\Occasions\\OccasionRenderer::renderEmailContent",
        "fqmn": "App\\Services\\Occasions\\OccasionRenderer@renderEmailContent",
        "expected_test_path": "tests/Feature/OccasionRendererTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\OccasionRenderer;\n\nclass OccasionRendererTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\OccasionRenderer@renderEmailContent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_renderemailcontent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\OccasionRenderer@renderEmailContent is PROOF_READY but no test file at tests/Feature/OccasionRendererTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/OccasionRenderer.php::App\\Services\\Occasions\\OccasionRenderer::validateTemplate",
        "fqmn": "App\\Services\\Occasions\\OccasionRenderer@validateTemplate",
        "expected_test_path": "tests/Feature/OccasionRendererTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\OccasionRenderer;\n\nclass OccasionRendererTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\OccasionRenderer@validateTemplate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatetemplate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\OccasionRenderer@validateTemplate is PROOF_READY but no test file at tests/Feature/OccasionRendererTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::applyAutoCorrect",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@applyAutoCorrect",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@applyAutoCorrect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_applyautocorrect_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@applyAutoCorrect is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::autoCorrectTypo",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_autocorrecttypo_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@autoCorrectTypo is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::canonicalizePlaceholders",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@canonicalizePlaceholders",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@canonicalizePlaceholders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canonicalizeplaceholders_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@canonicalizePlaceholders is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::extractCleanKey",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@extractCleanKey",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@extractCleanKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_extractcleankey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@extractCleanKey is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::helpList",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@helpList",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@helpList\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_helplist_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@helpList is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::isValid",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@isValid",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@isValid\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isvalid_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@isValid is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::normalize",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@normalize",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@normalize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_normalize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@normalize is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::preferredArabicAlias",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@preferredArabicAlias",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@preferredArabicAlias\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_preferredarabicalias_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@preferredArabicAlias is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Occasions/TemplateVariables.php::App\\Services\\Occasions\\TemplateVariables::resolve",
        "fqmn": "App\\Services\\Occasions\\TemplateVariables@resolve",
        "expected_test_path": "tests/Feature/TemplateVariablesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Occasions\\TemplateVariables;\n\nclass TemplateVariablesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Occasions\\TemplateVariables@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Occasions\\TemplateVariables@resolve is PROOF_READY but no test file at tests/Feature/TemplateVariablesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::analyzeConfidenceScores",
        "fqmn": "App\\Services\\OcrAnalyticsService@analyzeConfidenceScores",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@analyzeConfidenceScores\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyzeconfidencescores_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@analyzeConfidenceScores is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::calculateAverageConfidence",
        "fqmn": "App\\Services\\OcrAnalyticsService@calculateAverageConfidence",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@calculateAverageConfidence\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculateaverageconfidence_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@calculateAverageConfidence is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::checkOcrServiceHealth",
        "fqmn": "App\\Services\\OcrAnalyticsService@checkOcrServiceHealth",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@checkOcrServiceHealth\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkocrservicehealth_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@checkOcrServiceHealth is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::exportAnalytics",
        "fqmn": "App\\Services\\OcrAnalyticsService@exportAnalytics",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@exportAnalytics\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exportanalytics_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@exportAnalytics is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getDocumentTypeSummary",
        "fqmn": "App\\Services\\OcrAnalyticsService@getDocumentTypeSummary",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@getDocumentTypeSummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdocumenttypesummary_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@getDocumentTypeSummary is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpis",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpis",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@getKpis\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getkpis_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@getKpis is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForDepartment",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForDepartment",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@getKpisForDepartment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getkpisfordepartment_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@getKpisForDepartment is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForEmployee",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForEmployee",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@getKpisForEmployee\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getkpisforemployee_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@getKpisForEmployee is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForTeam",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForTeam",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@getKpisForTeam\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getkpisforteam_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@getKpisForTeam is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getKpisForUsers",
        "fqmn": "App\\Services\\OcrAnalyticsService@getKpisForUsers",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@getKpisForUsers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getkpisforusers_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@getKpisForUsers is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrAnalyticsService.php::App\\Services\\OcrAnalyticsService::getOcrPerformanceStats",
        "fqmn": "App\\Services\\OcrAnalyticsService@getOcrPerformanceStats",
        "expected_test_path": "tests/Feature/OcrAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrAnalyticsService;\n\nclass OcrAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrAnalyticsService@getOcrPerformanceStats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getocrperformancestats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrAnalyticsService@getOcrPerformanceStats is PROOF_READY but no test file at tests/Feature/OcrAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::extract",
        "fqmn": "App\\Services\\OcrClient@extract",
        "expected_test_path": "tests/Feature/OcrClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrClient;\n\nclass OcrClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrClient@extract\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_extract_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrClient@extract is PROOF_READY but no test file at tests/Feature/OcrClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::getConfig",
        "fqmn": "App\\Services\\OcrClient@getConfig",
        "expected_test_path": "tests/Feature/OcrClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrClient;\n\nclass OcrClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrClient@getConfig\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getconfig_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrClient@getConfig is PROOF_READY but no test file at tests/Feature/OcrClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OcrClient.php::App\\Services\\OcrClient::isHealthy",
        "fqmn": "App\\Services\\OcrClient@isHealthy",
        "expected_test_path": "tests/Feature/OcrClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OcrClient;\n\nclass OcrClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OcrClient@isHealthy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_ishealthy_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OcrClient@isHealthy is PROOF_READY but no test file at tests/Feature/OcrClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::computeForAllOrgs",
        "fqmn": "App\\Services\\OkrAutoTargetService@computeForAllOrgs",
        "expected_test_path": "tests/Feature/OkrAutoTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OkrAutoTargetService;\n\nclass OkrAutoTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OkrAutoTargetService@computeForAllOrgs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computeforallorgs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OkrAutoTargetService@computeForAllOrgs is PROOF_READY but no test file at tests/Feature/OkrAutoTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::computeForCompany",
        "fqmn": "App\\Services\\OkrAutoTargetService@computeForCompany",
        "expected_test_path": "tests/Feature/OkrAutoTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OkrAutoTargetService;\n\nclass OkrAutoTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OkrAutoTargetService@computeForCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computeforcompany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OkrAutoTargetService@computeForCompany is PROOF_READY but no test file at tests/Feature/OkrAutoTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::getOkrSettings",
        "fqmn": "App\\Services\\OkrAutoTargetService@getOkrSettings",
        "expected_test_path": "tests/Feature/OkrAutoTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OkrAutoTargetService;\n\nclass OkrAutoTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OkrAutoTargetService@getOkrSettings\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getokrsettings_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OkrAutoTargetService@getOkrSettings is PROOF_READY but no test file at tests/Feature/OkrAutoTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OkrAutoTargetService.php::App\\Services\\OkrAutoTargetService::preview",
        "fqmn": "App\\Services\\OkrAutoTargetService@preview",
        "expected_test_path": "tests/Feature/OkrAutoTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OkrAutoTargetService;\n\nclass OkrAutoTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OkrAutoTargetService@preview\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_preview_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OkrAutoTargetService@preview is PROOF_READY but no test file at tests/Feature/OkrAutoTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::autoCompleteEligibleOrders",
        "fqmn": "App\\Services\\OrderCompletionService@autoCompleteEligibleOrders",
        "expected_test_path": "tests/Feature/OrderCompletionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OrderCompletionService;\n\nclass OrderCompletionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OrderCompletionService@autoCompleteEligibleOrders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_autocompleteeligibleorders_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OrderCompletionService@autoCompleteEligibleOrders is PROOF_READY but no test file at tests/Feature/OrderCompletionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::canCompleteOrder",
        "fqmn": "App\\Services\\OrderCompletionService@canCompleteOrder",
        "expected_test_path": "tests/Feature/OrderCompletionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OrderCompletionService;\n\nclass OrderCompletionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OrderCompletionService@canCompleteOrder\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancompleteorder_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OrderCompletionService@canCompleteOrder is PROOF_READY but no test file at tests/Feature/OrderCompletionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OrderCompletionService.php::App\\Services\\OrderCompletionService::markOrderCompleted",
        "fqmn": "App\\Services\\OrderCompletionService@markOrderCompleted",
        "expected_test_path": "tests/Feature/OrderCompletionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OrderCompletionService;\n\nclass OrderCompletionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OrderCompletionService@markOrderCompleted\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markordercompleted_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OrderCompletionService@markOrderCompleted is PROOF_READY but no test file at tests/Feature/OrderCompletionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OrderExportService.php::App\\Services\\OrderExportService::buildInvoicesZip",
        "fqmn": "App\\Services\\OrderExportService@buildInvoicesZip",
        "expected_test_path": "tests/Feature/OrderExportServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OrderExportService;\n\nclass OrderExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OrderExportService@buildInvoicesZip\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildinvoiceszip_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OrderExportService@buildInvoicesZip is PROOF_READY but no test file at tests/Feature/OrderExportServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OrderExportService.php::App\\Services\\OrderExportService::streamCsv",
        "fqmn": "App\\Services\\OrderExportService@streamCsv",
        "expected_test_path": "tests/Feature/OrderExportServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OrderExportService;\n\nclass OrderExportServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OrderExportService@streamCsv\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_streamcsv_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OrderExportService@streamCsv is PROOF_READY but no test file at tests/Feature/OrderExportServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::createShipment",
        "fqmn": "App\\Services\\OtoClient@createShipment",
        "expected_test_path": "tests/Feature/OtoClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OtoClient;\n\nclass OtoClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OtoClient@createShipment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createshipment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OtoClient@createShipment is PROOF_READY but no test file at tests/Feature/OtoClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::getShipment",
        "fqmn": "App\\Services\\OtoClient@getShipment",
        "expected_test_path": "tests/Feature/OtoClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OtoClient;\n\nclass OtoClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OtoClient@getShipment\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getshipment_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\OtoClient@getShipment is PROOF_READY but no test file at tests/Feature/OtoClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::getShipmentCost",
        "fqmn": "App\\Services\\OtoClient@getShipmentCost",
        "expected_test_path": "tests/Feature/OtoClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OtoClient;\n\nclass OtoClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OtoClient@getShipmentCost\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getshipmentcost_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OtoClient@getShipmentCost is PROOF_READY but no test file at tests/Feature/OtoClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/OtoClient.php::App\\Services\\OtoClient::parseWebhook",
        "fqmn": "App\\Services\\OtoClient@parseWebhook",
        "expected_test_path": "tests/Feature/OtoClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\OtoClient;\n\nclass OtoClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\OtoClient@parseWebhook\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_parsewebhook_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\OtoClient@parseWebhook is PROOF_READY but no test file at tests/Feature/OtoClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::isClientError",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isClientError",
        "expected_test_path": "tests/Feature/TapRefundExceptionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PaymentGateway\\TapRefundException;\n\nclass TapRefundExceptionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PaymentGateway\\TapRefundException@isClientError\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isclienterror_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\PaymentGateway\\TapRefundException@isClientError is PROOF_READY but no test file at tests/Feature/TapRefundExceptionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PaymentGateway/TapRefundException.php::App\\Services\\PaymentGateway\\TapRefundException::isServerError",
        "fqmn": "App\\Services\\PaymentGateway\\TapRefundException@isServerError",
        "expected_test_path": "tests/Feature/TapRefundExceptionTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PaymentGateway\\TapRefundException;\n\nclass TapRefundExceptionTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PaymentGateway\\TapRefundException@isServerError\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isservererror_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\PaymentGateway\\TapRefundException@isServerError is PROOF_READY but no test file at tests/Feature/TapRefundExceptionTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::calculateHighlightRegions",
        "fqmn": "App\\Services\\PdfRedliningService@calculateHighlightRegions",
        "expected_test_path": "tests/Feature/PdfRedliningServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PdfRedliningService;\n\nclass PdfRedliningServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PdfRedliningService@calculateHighlightRegions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculatehighlightregions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\PdfRedliningService@calculateHighlightRegions is PROOF_READY but no test file at tests/Feature/PdfRedliningServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::cleanupOldRedlines",
        "fqmn": "App\\Services\\PdfRedliningService@cleanupOldRedlines",
        "expected_test_path": "tests/Feature/PdfRedliningServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PdfRedliningService;\n\nclass PdfRedliningServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PdfRedliningService@cleanupOldRedlines\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cleanupoldredlines_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\PdfRedliningService@cleanupOldRedlines is PROOF_READY but no test file at tests/Feature/PdfRedliningServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::extractBoundingBoxes",
        "fqmn": "App\\Services\\PdfRedliningService@extractBoundingBoxes",
        "expected_test_path": "tests/Feature/PdfRedliningServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PdfRedliningService;\n\nclass PdfRedliningServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PdfRedliningService@extractBoundingBoxes\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_extractboundingboxes_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\PdfRedliningService@extractBoundingBoxes is PROOF_READY but no test file at tests/Feature/PdfRedliningServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PdfRedliningService.php::App\\Services\\PdfRedliningService::generateRedlinedPdf",
        "fqmn": "App\\Services\\PdfRedliningService@generateRedlinedPdf",
        "expected_test_path": "tests/Feature/PdfRedliningServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written",
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PdfRedliningService;\n\nclass PdfRedliningServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PdfRedliningService@generateRedlinedPdf\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generateredlinedpdf_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\PdfRedliningService@generateRedlinedPdf is PROOF_READY but no test file at tests/Feature/PdfRedliningServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PlansCatalogService.php::App\\Services\\PlansCatalogService::getPublicPlansForDisplay",
        "fqmn": "App\\Services\\PlansCatalogService@getPublicPlansForDisplay",
        "expected_test_path": "tests/Feature/PlansCatalogServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PlansCatalogService;\n\nclass PlansCatalogServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PlansCatalogService@getPublicPlansForDisplay\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpublicplansfordisplay_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\PlansCatalogService@getPublicPlansForDisplay is PROOF_READY but no test file at tests/Feature/PlansCatalogServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Predictive/CulturalHealthIndexCalculator.php::App\\Services\\Predictive\\CulturalHealthIndexCalculator::compute",
        "fqmn": "App\\Services\\Predictive\\CulturalHealthIndexCalculator@compute",
        "expected_test_path": "tests/Feature/CulturalHealthIndexCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Predictive\\CulturalHealthIndexCalculator;\n\nclass CulturalHealthIndexCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Predictive\\CulturalHealthIndexCalculator@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Predictive\\CulturalHealthIndexCalculator@compute is PROOF_READY but no test file at tests/Feature/CulturalHealthIndexCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Predictive/CulturalMomentumService.php::App\\Services\\Predictive\\CulturalMomentumService::compute",
        "fqmn": "App\\Services\\Predictive\\CulturalMomentumService@compute",
        "expected_test_path": "tests/Feature/CulturalMomentumServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Predictive\\CulturalMomentumService;\n\nclass CulturalMomentumServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Predictive\\CulturalMomentumService@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Predictive\\CulturalMomentumService@compute is PROOF_READY but no test file at tests/Feature/CulturalMomentumServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Predictive/ScenarioSimulator.php::App\\Services\\Predictive\\ScenarioSimulator::simulate",
        "fqmn": "App\\Services\\Predictive\\ScenarioSimulator@simulate",
        "expected_test_path": "tests/Feature/ScenarioSimulatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Predictive\\ScenarioSimulator;\n\nclass ScenarioSimulatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Predictive\\ScenarioSimulator@simulate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_simulate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Predictive\\ScenarioSimulator@simulate is PROOF_READY but no test file at tests/Feature/ScenarioSimulatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PricingResolver.php::App\\Services\\PricingResolver::getPerUnitPrice",
        "fqmn": "App\\Services\\PricingResolver@getPerUnitPrice",
        "expected_test_path": "tests/Feature/PricingResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PricingResolver;\n\nclass PricingResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PricingResolver@getPerUnitPrice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getperunitprice_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\PricingResolver@getPerUnitPrice is PROOF_READY but no test file at tests/Feature/PricingResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Privacy/ConsentService.php::App\\Services\\Privacy\\ConsentService::history",
        "fqmn": "App\\Services\\Privacy\\ConsentService@history",
        "expected_test_path": "tests/Feature/ConsentServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Privacy\\ConsentService;\n\nclass ConsentServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Privacy\\ConsentService@history\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_history_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Privacy\\ConsentService@history is PROOF_READY but no test file at tests/Feature/ConsentServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Privacy/ConsentService.php::App\\Services\\Privacy\\ConsentService::toggle",
        "fqmn": "App\\Services\\Privacy\\ConsentService@toggle",
        "expected_test_path": "tests/Feature/ConsentServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Privacy\\ConsentService;\n\nclass ConsentServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Privacy\\ConsentService@toggle\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_toggle_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Privacy\\ConsentService@toggle is PROOF_READY but no test file at tests/Feature/ConsentServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Privacy/DataAccessLogger.php::App\\Services\\Privacy\\DataAccessLogger::record",
        "fqmn": "App\\Services\\Privacy\\DataAccessLogger@record",
        "expected_test_path": "tests/Feature/DataAccessLoggerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Privacy\\DataAccessLogger;\n\nclass DataAccessLoggerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Privacy\\DataAccessLogger@record\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_record_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Privacy\\DataAccessLogger@record is PROOF_READY but no test file at tests/Feature/DataAccessLoggerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Privacy/DataAccessLogger.php::App\\Services\\Privacy\\DataAccessLogger::recordAsUser",
        "fqmn": "App\\Services\\Privacy\\DataAccessLogger@recordAsUser",
        "expected_test_path": "tests/Feature/DataAccessLoggerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Privacy\\DataAccessLogger;\n\nclass DataAccessLoggerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Privacy\\DataAccessLogger@recordAsUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recordasuser_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Privacy\\DataAccessLogger@recordAsUser is PROOF_READY but no test file at tests/Feature/DataAccessLoggerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::categories",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@categories",
        "expected_test_path": "tests/Feature/PrivacyDataCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Privacy\\PrivacyDataCatalog;\n\nclass PrivacyDataCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Privacy\\PrivacyDataCatalog@categories\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_categories_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Privacy\\PrivacyDataCatalog@categories is PROOF_READY but no test file at tests/Feature/PrivacyDataCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::consentKeys",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@consentKeys",
        "expected_test_path": "tests/Feature/PrivacyDataCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Privacy\\PrivacyDataCatalog;\n\nclass PrivacyDataCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Privacy\\PrivacyDataCatalog@consentKeys\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_consentkeys_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Privacy\\PrivacyDataCatalog@consentKeys is PROOF_READY but no test file at tests/Feature/PrivacyDataCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::defaultFor",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@defaultFor",
        "expected_test_path": "tests/Feature/PrivacyDataCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Privacy\\PrivacyDataCatalog;\n\nclass PrivacyDataCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Privacy\\PrivacyDataCatalog@defaultFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_defaultfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Privacy\\PrivacyDataCatalog@defaultFor is PROOF_READY but no test file at tests/Feature/PrivacyDataCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Privacy/PrivacyDataCatalog.php::App\\Services\\Privacy\\PrivacyDataCatalog::thirdPartyProcessors",
        "fqmn": "App\\Services\\Privacy\\PrivacyDataCatalog@thirdPartyProcessors",
        "expected_test_path": "tests/Feature/PrivacyDataCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Privacy\\PrivacyDataCatalog;\n\nclass PrivacyDataCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Privacy\\PrivacyDataCatalog@thirdPartyProcessors\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_thirdpartyprocessors_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Services\\Privacy\\PrivacyDataCatalog@thirdPartyProcessors is PROOF_READY but no test file at tests/Feature/PrivacyDataCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::generateCheckoutValidationRules",
        "fqmn": "App\\Services\\ProductCustomFieldsService@generateCheckoutValidationRules",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ProductCustomFieldsService;\n\nclass ProductCustomFieldsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ProductCustomFieldsService@generateCheckoutValidationRules\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatecheckoutvalidationrules_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ProductCustomFieldsService@generateCheckoutValidationRules is PROOF_READY but no test file at tests/Feature/ProductCustomFieldsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::getCustomFieldsForCart",
        "fqmn": "App\\Services\\ProductCustomFieldsService@getCustomFieldsForCart",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ProductCustomFieldsService;\n\nclass ProductCustomFieldsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ProductCustomFieldsService@getCustomFieldsForCart\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcustomfieldsforcart_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ProductCustomFieldsService@getCustomFieldsForCart is PROOF_READY but no test file at tests/Feature/ProductCustomFieldsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::getDisplayDataForSupplier",
        "fqmn": "App\\Services\\ProductCustomFieldsService@getDisplayDataForSupplier",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ProductCustomFieldsService;\n\nclass ProductCustomFieldsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ProductCustomFieldsService@getDisplayDataForSupplier\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getdisplaydataforsupplier_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ProductCustomFieldsService@getDisplayDataForSupplier is PROOF_READY but no test file at tests/Feature/ProductCustomFieldsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::processCustomFieldsForOrder",
        "fqmn": "App\\Services\\ProductCustomFieldsService@processCustomFieldsForOrder",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ProductCustomFieldsService;\n\nclass ProductCustomFieldsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ProductCustomFieldsService@processCustomFieldsForOrder\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_processcustomfieldsfororder_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ProductCustomFieldsService@processCustomFieldsForOrder is PROOF_READY but no test file at tests/Feature/ProductCustomFieldsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ProductCustomFieldsService.php::App\\Services\\ProductCustomFieldsService::validateCustomFieldsData",
        "fqmn": "App\\Services\\ProductCustomFieldsService@validateCustomFieldsData",
        "expected_test_path": "tests/Feature/ProductCustomFieldsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ProductCustomFieldsService;\n\nclass ProductCustomFieldsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ProductCustomFieldsService@validateCustomFieldsData\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatecustomfieldsdata_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ProductCustomFieldsService@validateCustomFieldsData is PROOF_READY but no test file at tests/Feature/ProductCustomFieldsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::getPromotionPrecedent",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@getPromotionPrecedent",
        "expected_test_path": "tests/Feature/CompensationEquityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\CompensationEquityService;\n\nclass CompensationEquityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\CompensationEquityService@getPromotionPrecedent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpromotionprecedent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\CompensationEquityService@getPromotionPrecedent is PROOF_READY but no test file at tests/Feature/CompensationEquityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::getSalaryEquityCheck",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@getSalaryEquityCheck",
        "expected_test_path": "tests/Feature/CompensationEquityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\CompensationEquityService;\n\nclass CompensationEquityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\CompensationEquityService@getSalaryEquityCheck\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getsalaryequitycheck_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\CompensationEquityService@getSalaryEquityCheck is PROOF_READY but no test file at tests/Feature/CompensationEquityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/CompensationEquityService.php::App\\Services\\Promotion\\CompensationEquityService::recordCompensation",
        "fqmn": "App\\Services\\Promotion\\CompensationEquityService@recordCompensation",
        "expected_test_path": "tests/Feature/CompensationEquityServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\CompensationEquityService;\n\nclass CompensationEquityServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\CompensationEquityService@recordCompensation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recordcompensation_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\CompensationEquityService@recordCompensation is PROOF_READY but no test file at tests/Feature/CompensationEquityServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::checkAndHandleCompletion",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@checkAndHandleCompletion",
        "expected_test_path": "tests/Feature/GrowthBlueprintServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\GrowthBlueprintService;\n\nclass GrowthBlueprintServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\GrowthBlueprintService@checkAndHandleCompletion\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkandhandlecompletion_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\GrowthBlueprintService@checkAndHandleCompletion is PROOF_READY but no test file at tests/Feature/GrowthBlueprintServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/GrowthBlueprintService.php::App\\Services\\Promotion\\GrowthBlueprintService::generate",
        "fqmn": "App\\Services\\Promotion\\GrowthBlueprintService@generate",
        "expected_test_path": "tests/Feature/GrowthBlueprintServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\GrowthBlueprintService;\n\nclass GrowthBlueprintServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\GrowthBlueprintService@generate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\GrowthBlueprintService@generate is PROOF_READY but no test file at tests/Feature/GrowthBlueprintServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::activeCooldown",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@activeCooldown",
        "expected_test_path": "tests/Feature/PromotionApplicationServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\PromotionApplicationService;\n\nclass PromotionApplicationServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\PromotionApplicationService@activeCooldown\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_activecooldown_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\PromotionApplicationService@activeCooldown is PROOF_READY but no test file at tests/Feature/PromotionApplicationServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::apply",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@apply",
        "expected_test_path": "tests/Feature/PromotionApplicationServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\PromotionApplicationService;\n\nclass PromotionApplicationServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\PromotionApplicationService@apply\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_apply_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\PromotionApplicationService@apply is PROOF_READY but no test file at tests/Feature/PromotionApplicationServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/PromotionApplicationService.php::App\\Services\\Promotion\\PromotionApplicationService::latestApplication",
        "fqmn": "App\\Services\\Promotion\\PromotionApplicationService@latestApplication",
        "expected_test_path": "tests/Feature/PromotionApplicationServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\PromotionApplicationService;\n\nclass PromotionApplicationServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\PromotionApplicationService@latestApplication\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_latestapplication_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\PromotionApplicationService@latestApplication is PROOF_READY but no test file at tests/Feature/PromotionApplicationServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Promotion/PromotionCalibrationService.php::App\\Services\\Promotion\\PromotionCalibrationService::analyzeFlags",
        "fqmn": "App\\Services\\Promotion\\PromotionCalibrationService@analyzeFlags",
        "expected_test_path": "tests/Feature/PromotionCalibrationServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Promotion\\PromotionCalibrationService;\n\nclass PromotionCalibrationServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Promotion\\PromotionCalibrationService@analyzeFlags\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_analyzeflags_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Promotion\\PromotionCalibrationService@analyzeFlags is PROOF_READY but no test file at tests/Feature/PromotionCalibrationServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PromptGeneratorService.php::App\\Services\\PromptGeneratorService::prompts",
        "fqmn": "App\\Services\\PromptGeneratorService@prompts",
        "expected_test_path": "tests/Feature/PromptGeneratorServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PromptGeneratorService;\n\nclass PromptGeneratorServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PromptGeneratorService@prompts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_prompts_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\PromptGeneratorService@prompts is PROOF_READY but no test file at tests/Feature/PromptGeneratorServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::sendToSubscriptions",
        "fqmn": "App\\Services\\PushService@sendToSubscriptions",
        "expected_test_path": "tests/Feature/PushServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PushService;\n\nclass PushServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PushService@sendToSubscriptions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendtosubscriptions_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\PushService@sendToSubscriptions is PROOF_READY but no test file at tests/Feature/PushServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/PushService.php::App\\Services\\PushService::sendToUser",
        "fqmn": "App\\Services\\PushService@sendToUser",
        "expected_test_path": "tests/Feature/PushServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\PushService;\n\nclass PushServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\PushService@sendToUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendtouser_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\PushService@sendToUser is PROOF_READY but no test file at tests/Feature/PushServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RaiseService.php::App\\Services\\RaiseService::evaluate",
        "fqmn": "App\\Services\\RaiseService@evaluate",
        "expected_test_path": "tests/Feature/RaiseServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RaiseService;\n\nclass RaiseServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RaiseService@evaluate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_evaluate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RaiseService@evaluate is PROOF_READY but no test file at tests/Feature/RaiseServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getComparisons",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getComparisons",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionAnalyticsService;\n\nclass RecognitionAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionAnalyticsService@getComparisons\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getcomparisons_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionAnalyticsService@getComparisons is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getKpis",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getKpis",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionAnalyticsService;\n\nclass RecognitionAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionAnalyticsService@getKpis\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getkpis_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionAnalyticsService@getKpis is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionAnalyticsService.php::App\\Services\\RecognitionAnalyticsService::getRecognitionOutcomeCorrelation",
        "fqmn": "App\\Services\\RecognitionAnalyticsService@getRecognitionOutcomeCorrelation",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionAnalyticsService;\n\nclass RecognitionAnalyticsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionAnalyticsService@getRecognitionOutcomeCorrelation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getrecognitionoutcomecorrelation_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionAnalyticsService@getRecognitionOutcomeCorrelation is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::canGive",
        "fqmn": "App\\Services\\RecognitionPolicyService@canGive",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionPolicyService;\n\nclass RecognitionPolicyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionPolicyService@canGive\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cangive_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionPolicyService@canGive is PROOF_READY but no test file at tests/Feature/RecognitionPolicyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::forCompany",
        "fqmn": "App\\Services\\RecognitionPolicyService@forCompany",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionPolicyService;\n\nclass RecognitionPolicyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionPolicyService@forCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcompany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionPolicyService@forCompany is PROOF_READY but no test file at tests/Feature/RecognitionPolicyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::giverUserIds",
        "fqmn": "App\\Services\\RecognitionPolicyService@giverUserIds",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionPolicyService;\n\nclass RecognitionPolicyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionPolicyService@giverUserIds\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_giveruserids_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionPolicyService@giverUserIds is PROOF_READY but no test file at tests/Feature/RecognitionPolicyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::metadataBlock",
        "fqmn": "App\\Services\\RecognitionPolicyService@metadataBlock",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionPolicyService;\n\nclass RecognitionPolicyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionPolicyService@metadataBlock\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_metadatablock_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionPolicyService@metadataBlock is PROOF_READY but no test file at tests/Feature/RecognitionPolicyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::userRole",
        "fqmn": "App\\Services\\RecognitionPolicyService@userRole",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionPolicyService;\n\nclass RecognitionPolicyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionPolicyService@userRole\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_userrole_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionPolicyService@userRole is PROOF_READY but no test file at tests/Feature/RecognitionPolicyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionPolicyService.php::App\\Services\\RecognitionPolicyService::userRoles",
        "fqmn": "App\\Services\\RecognitionPolicyService@userRoles",
        "expected_test_path": "tests/Feature/RecognitionPolicyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionPolicyService;\n\nclass RecognitionPolicyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionPolicyService@userRoles\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_userroles_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionPolicyService@userRoles is PROOF_READY but no test file at tests/Feature/RecognitionPolicyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionPredictionService.php::App\\Services\\RecognitionPredictionService::computeForScope",
        "fqmn": "App\\Services\\RecognitionPredictionService@computeForScope",
        "expected_test_path": "tests/Feature/RecognitionPredictionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionPredictionService;\n\nclass RecognitionPredictionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionPredictionService@computeForScope\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computeforscope_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionPredictionService@computeForScope is PROOF_READY but no test file at tests/Feature/RecognitionPredictionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionProgressService.php::App\\Services\\RecognitionProgressService::build",
        "fqmn": "App\\Services\\RecognitionProgressService@build",
        "expected_test_path": "tests/Feature/RecognitionProgressServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionProgressService;\n\nclass RecognitionProgressServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionProgressService@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionProgressService@build is PROOF_READY but no test file at tests/Feature/RecognitionProgressServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::getMonthlyTarget",
        "fqmn": "App\\Services\\RecognitionTargetService@getMonthlyTarget",
        "expected_test_path": "tests/Feature/RecognitionTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionTargetService;\n\nclass RecognitionTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionTargetService@getMonthlyTarget\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getmonthlytarget_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionTargetService@getMonthlyTarget is PROOF_READY but no test file at tests/Feature/RecognitionTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::resolveTargetForDate",
        "fqmn": "App\\Services\\RecognitionTargetService@resolveTargetForDate",
        "expected_test_path": "tests/Feature/RecognitionTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionTargetService;\n\nclass RecognitionTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionTargetService@resolveTargetForDate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvetargetfordate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionTargetService@resolveTargetForDate is PROOF_READY but no test file at tests/Feature/RecognitionTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RecognitionTargetService.php::App\\Services\\RecognitionTargetService::setMonthlyTarget",
        "fqmn": "App\\Services\\RecognitionTargetService@setMonthlyTarget",
        "expected_test_path": "tests/Feature/RecognitionTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RecognitionTargetService;\n\nclass RecognitionTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RecognitionTargetService@setMonthlyTarget\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setmonthlytarget_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RecognitionTargetService@setMonthlyTarget is PROOF_READY but no test file at tests/Feature/RecognitionTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RedisLockService.php::App\\Services\\RedisLockService::runWithLock",
        "fqmn": "App\\Services\\RedisLockService@runWithLock",
        "expected_test_path": "tests/Feature/RedisLockServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RedisLockService;\n\nclass RedisLockServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RedisLockService@runWithLock\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_runwithlock_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RedisLockService@runWithLock is PROOF_READY but no test file at tests/Feature/RedisLockServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::approvalDeadline",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@approvalDeadline",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardApprovals\\RewardApprovalsContext;\n\nclass RewardApprovalsContextTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardApprovals\\RewardApprovalsContext@approvalDeadline\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_approvaldeadline_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardApprovals\\RewardApprovalsContext@approvalDeadline is PROOF_READY but no test file at tests/Feature/RewardApprovalsContextTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::buildConflicts",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardApprovals\\RewardApprovalsContext;\n\nclass RewardApprovalsContextTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildconflicts_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardApprovals\\RewardApprovalsContext@buildConflicts is PROOF_READY but no test file at tests/Feature/RewardApprovalsContextTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::buildScoreBreakdown",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@buildScoreBreakdown",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardApprovals\\RewardApprovalsContext;\n\nclass RewardApprovalsContextTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardApprovals\\RewardApprovalsContext@buildScoreBreakdown\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildscorebreakdown_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardApprovals\\RewardApprovalsContext@buildScoreBreakdown is PROOF_READY but no test file at tests/Feature/RewardApprovalsContextTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::humanSlot",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@humanSlot",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardApprovals\\RewardApprovalsContext;\n\nclass RewardApprovalsContextTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardApprovals\\RewardApprovalsContext@humanSlot\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_humanslot_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardApprovals\\RewardApprovalsContext@humanSlot is PROOF_READY but no test file at tests/Feature/RewardApprovalsContextTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::lastRewardedDate",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@lastRewardedDate",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardApprovals\\RewardApprovalsContext;\n\nclass RewardApprovalsContextTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardApprovals\\RewardApprovalsContext@lastRewardedDate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_lastrewardeddate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardApprovals\\RewardApprovalsContext@lastRewardedDate is PROOF_READY but no test file at tests/Feature/RewardApprovalsContextTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::policySummary",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@policySummary",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardApprovals\\RewardApprovalsContext;\n\nclass RewardApprovalsContextTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardApprovals\\RewardApprovalsContext@policySummary\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_policysummary_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardApprovals\\RewardApprovalsContext@policySummary is PROOF_READY but no test file at tests/Feature/RewardApprovalsContextTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardApprovals/RewardApprovalsContext.php::App\\Services\\RewardApprovals\\RewardApprovalsContext::tenureDays",
        "fqmn": "App\\Services\\RewardApprovals\\RewardApprovalsContext@tenureDays",
        "expected_test_path": "tests/Feature/RewardApprovalsContextTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardApprovals\\RewardApprovalsContext;\n\nclass RewardApprovalsContextTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardApprovals\\RewardApprovalsContext@tenureDays\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tenuredays_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardApprovals\\RewardApprovalsContext@tenureDays is PROOF_READY but no test file at tests/Feature/RewardApprovalsContextTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Rewards/CompanyCancellationPointsFreeze.php::App\\Services\\Rewards\\CompanyCancellationPointsFreeze::freezeForCompany",
        "fqmn": "App\\Services\\Rewards\\CompanyCancellationPointsFreeze@freezeForCompany",
        "expected_test_path": "tests/Feature/CompanyCancellationPointsFreezeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Rewards\\CompanyCancellationPointsFreeze;\n\nclass CompanyCancellationPointsFreezeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Rewards\\CompanyCancellationPointsFreeze@freezeForCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_freezeforcompany_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Rewards\\CompanyCancellationPointsFreeze@freezeForCompany is PROOF_READY but no test file at tests/Feature/CompanyCancellationPointsFreezeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Rewards/CompanyCancellationPointsFreeze.php::App\\Services\\Rewards\\CompanyCancellationPointsFreeze::previewForCompany",
        "fqmn": "App\\Services\\Rewards\\CompanyCancellationPointsFreeze@previewForCompany",
        "expected_test_path": "tests/Feature/CompanyCancellationPointsFreezeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Rewards\\CompanyCancellationPointsFreeze;\n\nclass CompanyCancellationPointsFreezeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Rewards\\CompanyCancellationPointsFreeze@previewForCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_previewforcompany_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Rewards\\CompanyCancellationPointsFreeze@previewForCompany is PROOF_READY but no test file at tests/Feature/CompanyCancellationPointsFreezeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Rewards/RewardsStatement.php::App\\Services\\Rewards\\RewardsStatement::build",
        "fqmn": "App\\Services\\Rewards\\RewardsStatement@build",
        "expected_test_path": "tests/Feature/RewardsStatementTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Rewards\\RewardsStatement;\n\nclass RewardsStatementTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Rewards\\RewardsStatement@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Rewards\\RewardsStatement@build is PROOF_READY but no test file at tests/Feature/RewardsStatementTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardService.php::App\\Services\\RewardService::computeWeeklyWinners",
        "fqmn": "App\\Services\\RewardService@computeWeeklyWinners",
        "expected_test_path": "tests/Feature/RewardServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardService;\n\nclass RewardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardService@computeWeeklyWinners\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computeweeklywinners_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardService@computeWeeklyWinners is PROOF_READY but no test file at tests/Feature/RewardServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RewardService.php::App\\Services\\RewardService::persistGrants",
        "fqmn": "App\\Services\\RewardService@persistGrants",
        "expected_test_path": "tests/Feature/RewardServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RewardService;\n\nclass RewardServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RewardService@persistGrants\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_persistgrants_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\RewardService@persistGrants is PROOF_READY but no test file at tests/Feature/RewardServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/RfqSubmissionService.php::App\\Services\\RfqSubmissionService::submit",
        "fqmn": "App\\Services\\RfqSubmissionService@submit",
        "expected_test_path": "tests/Feature/RfqSubmissionServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\RfqSubmissionService;\n\nclass RfqSubmissionServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\RfqSubmissionService@submit\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_submit_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\RfqSubmissionService@submit is PROOF_READY but no test file at tests/Feature/RfqSubmissionServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ShipmentService.php::App\\Services\\ShipmentService::createOrderShipments",
        "fqmn": "App\\Services\\ShipmentService@createOrderShipments",
        "expected_test_path": "tests/Feature/ShipmentServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ShipmentService;\n\nclass ShipmentServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ShipmentService@createOrderShipments\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_createordershipments_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Event::assertDispatched(<EventClass>::class);\n        // Queue::assertPushed(<JobClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\ShipmentService@createOrderShipments is PROOF_READY but no test file at tests/Feature/ShipmentServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::checkStockAvailability",
        "fqmn": "App\\Services\\StockService@checkStockAvailability",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StockService;\n\nclass StockServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StockService@checkStockAvailability\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkstockavailability_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StockService@checkStockAvailability is PROOF_READY but no test file at tests/Feature/StockServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::cleanupExpiredReservations",
        "fqmn": "App\\Services\\StockService@cleanupExpiredReservations",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StockService;\n\nclass StockServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StockService@cleanupExpiredReservations\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cleanupexpiredreservations_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\StockService@cleanupExpiredReservations is PROOF_READY but no test file at tests/Feature/StockServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::confirmReservations",
        "fqmn": "App\\Services\\StockService@confirmReservations",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StockService;\n\nclass StockServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StockService@confirmReservations\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_confirmreservations_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StockService@confirmReservations is PROOF_READY but no test file at tests/Feature/StockServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::releaseReservations",
        "fqmn": "App\\Services\\StockService@releaseReservations",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StockService;\n\nclass StockServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StockService@releaseReservations\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_releasereservations_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\StockService@releaseReservations is PROOF_READY but no test file at tests/Feature/StockServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::reserveStock",
        "fqmn": "App\\Services\\StockService@reserveStock",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StockService;\n\nclass StockServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StockService@reserveStock\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reservestock_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\StockService@reserveStock is PROOF_READY but no test file at tests/Feature/StockServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StockService.php::App\\Services\\StockService::reserveStockWithBackorder",
        "fqmn": "App\\Services\\StockService@reserveStockWithBackorder",
        "expected_test_path": "tests/Feature/StockServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StockService;\n\nclass StockServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StockService@reserveStockWithBackorder\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_reservestockwithbackorder_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\StockService@reserveStockWithBackorder is PROOF_READY but no test file at tests/Feature/StockServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::classify",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify",
        "expected_test_path": "tests/Feature/AiCustomKpiDrafterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\AiCustomKpiDrafter;\n\nclass AiCustomKpiDrafterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_classify_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@classify is PROOF_READY but no test file at tests/Feature/AiCustomKpiDrafterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::draft",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@draft",
        "expected_test_path": "tests/Feature/AiCustomKpiDrafterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\AiCustomKpiDrafter;\n\nclass AiCustomKpiDrafterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@draft\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_draft_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@draft is PROOF_READY but no test file at tests/Feature/AiCustomKpiDrafterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/AiCustomKpiDrafter.php::App\\Services\\StrategyAlignment\\AiCustomKpiDrafter::openAiJson",
        "fqmn": "App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@openAiJson",
        "expected_test_path": "tests/Feature/AiCustomKpiDrafterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\AiCustomKpiDrafter;\n\nclass AiCustomKpiDrafterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@openAiJson\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_openaijson_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\AiCustomKpiDrafter@openAiJson is PROOF_READY but no test file at tests/Feature/AiCustomKpiDrafterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/BaselineSuggester.php::App\\Services\\StrategyAlignment\\BaselineSuggester::suggest",
        "fqmn": "App\\Services\\StrategyAlignment\\BaselineSuggester@suggest",
        "expected_test_path": "tests/Feature/BaselineSuggesterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\BaselineSuggester;\n\nclass BaselineSuggesterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\BaselineSuggester@suggest\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_suggest_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\BaselineSuggester@suggest is PROOF_READY but no test file at tests/Feature/BaselineSuggesterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::availableTiersFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@availableTiersFor",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@availableTiersFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_availabletiersfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@availableTiersFor is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canApproveDefinition",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveDefinition",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveDefinition\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canapprovedefinition_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveDefinition is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canApproveValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveValue",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveValue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canapprovevalue_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canApproveValue is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canAttestOutcome",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canAttestOutcome",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canAttestOutcome\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canattestoutcome_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canAttestOutcome is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canCreate",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canCreate",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canCreate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancreate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canCreate is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canEditDefinition",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_caneditdefinition_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditDefinition is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canEditValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditValue",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditValue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_caneditvalue_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canEditValue is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canReportValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canReportValue",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canReportValue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canreportvalue_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canReportValue is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canResubmitValue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canResubmitValue",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canResubmitValue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canresubmitvalue_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canResubmitValue is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canScopeTo",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canScopeTo",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canScopeTo\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canscopeto_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canScopeTo is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::canViewKpi",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canViewKpi",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canViewKpi\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canviewkpi_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@canViewKpi is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::departmentManagedBy",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_departmentmanagedby_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@departmentManagedBy is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::hasAuthorityOver",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@hasAuthorityOver",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@hasAuthorityOver\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasauthorityover_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@hasAuthorityOver is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::isDepartmentManager",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isDepartmentManager",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isDepartmentManager\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isdepartmentmanager_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isDepartmentManager is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::isEmployeeRole",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isEmployeeRole",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isEmployeeRole\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isemployeerole_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@isEmployeeRole is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::nextApproverInChain",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@nextApproverInChain",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@nextApproverInChain\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_nextapproverinchain_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@nextApproverInChain is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::resolveApprovalChain",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@resolveApprovalChain",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@resolveApprovalChain\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolveapprovalchain_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@resolveApprovalChain is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::scopeOptionsFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@scopeOptionsFor",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@scopeOptionsFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_scopeoptionsfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@scopeOptionsFor is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::teamsLedOrManagedBy",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_teamsledormanagedby_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@teamsLedOrManagedBy is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::userDepartmentId",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userDepartmentId",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userDepartmentId\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_userdepartmentid_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userDepartmentId is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiAuthorization.php::App\\Services\\StrategyAlignment\\CustomKpiAuthorization::userTeamIds",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userTeamIds",
        "expected_test_path": "tests/Feature/CustomKpiAuthorizationTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiAuthorization;\n\nclass CustomKpiAuthorizationTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userTeamIds\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_userteamids_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiAuthorization@userTeamIds is PROOF_READY but no test file at tests/Feature/CustomKpiAuthorizationTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiPointMinter.php::App\\Services\\StrategyAlignment\\CustomKpiPointMinter::mint",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiPointMinter@mint",
        "expected_test_path": "tests/Feature/CustomKpiPointMinterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiPointMinter;\n\nclass CustomKpiPointMinterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiPointMinter@mint\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_mint_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiPointMinter@mint is PROOF_READY but no test file at tests/Feature/CustomKpiPointMinterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::isFirstSundayOfMonth",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiReminderService;\n\nclass CustomKpiReminderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isfirstsundayofmonth_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiReminderService@isFirstSundayOfMonth is PROOF_READY but no test file at tests/Feature/CustomKpiReminderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::isSecondSundayOfMonth",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@isSecondSundayOfMonth",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiReminderService;\n\nclass CustomKpiReminderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiReminderService@isSecondSundayOfMonth\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_issecondsundayofmonth_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiReminderService@isSecondSundayOfMonth is PROOF_READY but no test file at tests/Feature/CustomKpiReminderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::periodJustEnded",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@periodJustEnded",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiReminderService;\n\nclass CustomKpiReminderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiReminderService@periodJustEnded\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_periodjustended_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiReminderService@periodJustEnded is PROOF_READY but no test file at tests/Feature/CustomKpiReminderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::pickApproverFor",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@pickApproverFor",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiReminderService;\n\nclass CustomKpiReminderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiReminderService@pickApproverFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pickapproverfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiReminderService@pickApproverFor is PROOF_READY but no test file at tests/Feature/CustomKpiReminderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::runDaily",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@runDaily",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiReminderService;\n\nclass CustomKpiReminderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiReminderService@runDaily\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rundaily_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiReminderService@runDaily is PROOF_READY but no test file at tests/Feature/CustomKpiReminderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendDue",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendDue",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiReminderService;\n\nclass CustomKpiReminderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendDue\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_senddue_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendDue is PROOF_READY but no test file at tests/Feature/CustomKpiReminderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendFirstSundayReminders",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendFirstSundayReminders",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiReminderService;\n\nclass CustomKpiReminderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendFirstSundayReminders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendfirstsundayreminders_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendFirstSundayReminders is PROOF_READY but no test file at tests/Feature/CustomKpiReminderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/CustomKpiReminderService.php::App\\Services\\StrategyAlignment\\CustomKpiReminderService::sendSecondSundayReminders",
        "fqmn": "App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendSecondSundayReminders",
        "expected_test_path": "tests/Feature/CustomKpiReminderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\CustomKpiReminderService;\n\nclass CustomKpiReminderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendSecondSundayReminders\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendsecondsundayreminders_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\CustomKpiReminderService@sendSecondSundayReminders is PROOF_READY but no test file at tests/Feature/CustomKpiReminderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::askIndustryQuestions",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@askIndustryQuestions",
        "expected_test_path": "tests/Feature/StarterKpiDrafterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\StarterKpiDrafter;\n\nclass StarterKpiDrafterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\StarterKpiDrafter@askIndustryQuestions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_askindustryquestions_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\StarterKpiDrafter@askIndustryQuestions is PROOF_READY but no test file at tests/Feature/StarterKpiDrafterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::draftKpis",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis",
        "expected_test_path": "tests/Feature/StarterKpiDrafterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\StarterKpiDrafter;\n\nclass StarterKpiDrafterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_draftkpis_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftKpis is PROOF_READY but no test file at tests/Feature/StarterKpiDrafterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/StrategyAlignment/StarterKpiDrafter.php::App\\Services\\StrategyAlignment\\StarterKpiDrafter::draftOkrs",
        "fqmn": "App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftOkrs",
        "expected_test_path": "tests/Feature/StarterKpiDrafterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\StrategyAlignment\\StarterKpiDrafter;\n\nclass StarterKpiDrafterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftOkrs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_draftokrs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\StrategyAlignment\\StarterKpiDrafter@draftOkrs is PROOF_READY but no test file at tests/Feature/StarterKpiDrafterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::hasActiveSubscription",
        "fqmn": "App\\Services\\SubscriptionResolver@hasActiveSubscription",
        "expected_test_path": "tests/Feature/SubscriptionResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\SubscriptionResolver;\n\nclass SubscriptionResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\SubscriptionResolver@hasActiveSubscription\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasactivesubscription_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\SubscriptionResolver@hasActiveSubscription is PROOF_READY but no test file at tests/Feature/SubscriptionResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::latestForCompany",
        "fqmn": "App\\Services\\SubscriptionResolver@latestForCompany",
        "expected_test_path": "tests/Feature/SubscriptionResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\SubscriptionResolver;\n\nclass SubscriptionResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\SubscriptionResolver@latestForCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_latestforcompany_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\SubscriptionResolver@latestForCompany is PROOF_READY but no test file at tests/Feature/SubscriptionResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/SubscriptionResolver.php::App\\Services\\SubscriptionResolver::statusForCompany",
        "fqmn": "App\\Services\\SubscriptionResolver@statusForCompany",
        "expected_test_path": "tests/Feature/SubscriptionResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\SubscriptionResolver;\n\nclass SubscriptionResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\SubscriptionResolver@statusForCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_statusforcompany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\SubscriptionResolver@statusForCompany is PROOF_READY but no test file at tests/Feature/SubscriptionResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/BlindEmployeeSurveyService.php::App\\Services\\Succession\\BlindEmployeeSurveyService::submitAnswers",
        "fqmn": "App\\Services\\Succession\\BlindEmployeeSurveyService@submitAnswers",
        "expected_test_path": "tests/Feature/BlindEmployeeSurveyServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\BlindEmployeeSurveyService;\n\nclass BlindEmployeeSurveyServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\BlindEmployeeSurveyService@submitAnswers\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_submitanswers_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\BlindEmployeeSurveyService@submitAnswers is PROOF_READY but no test file at tests/Feature/BlindEmployeeSurveyServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/CadencePacer.php::App\\Services\\Succession\\CadencePacer::decideAlerts",
        "fqmn": "App\\Services\\Succession\\CadencePacer@decideAlerts",
        "expected_test_path": "tests/Feature/CadencePacerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\CadencePacer;\n\nclass CadencePacerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\CadencePacer@decideAlerts\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_decidealerts_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\CadencePacer@decideAlerts is PROOF_READY but no test file at tests/Feature/CadencePacerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/Calculators/TimeLockCalculator.php::App\\Services\\Succession\\Calculators\\TimeLockCalculator::compute",
        "fqmn": "App\\Services\\Succession\\Calculators\\TimeLockCalculator@compute",
        "expected_test_path": "tests/Feature/TimeLockCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\Calculators\\TimeLockCalculator;\n\nclass TimeLockCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\Calculators\\TimeLockCalculator@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\Calculators\\TimeLockCalculator@compute is PROOF_READY but no test file at tests/Feature/TimeLockCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/CompanyValueTargetService.php::App\\Services\\Succession\\CompanyValueTargetService::canCoSign",
        "fqmn": "App\\Services\\Succession\\CompanyValueTargetService@canCoSign",
        "expected_test_path": "tests/Feature/CompanyValueTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\CompanyValueTargetService;\n\nclass CompanyValueTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\CompanyValueTargetService@canCoSign\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cancosign_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\CompanyValueTargetService@canCoSign is PROOF_READY but no test file at tests/Feature/CompanyValueTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/CompanyValueTargetService.php::App\\Services\\Succession\\CompanyValueTargetService::currentFor",
        "fqmn": "App\\Services\\Succession\\CompanyValueTargetService@currentFor",
        "expected_test_path": "tests/Feature/CompanyValueTargetServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\CompanyValueTargetService;\n\nclass CompanyValueTargetServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\CompanyValueTargetService@currentFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_currentfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\CompanyValueTargetService@currentFor is PROOF_READY but no test file at tests/Feature/CompanyValueTargetServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/CrossCheckExecutor.php::App\\Services\\Succession\\CrossCheckExecutor::execute",
        "fqmn": "App\\Services\\Succession\\CrossCheckExecutor@execute",
        "expected_test_path": "tests/Feature/CrossCheckExecutorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\CrossCheckExecutor;\n\nclass CrossCheckExecutorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\CrossCheckExecutor@execute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_execute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\CrossCheckExecutor@execute is PROOF_READY but no test file at tests/Feature/CrossCheckExecutorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/CurriculumBuilderService.php::App\\Services\\Succession\\CurriculumBuilderService::startPlan",
        "fqmn": "App\\Services\\Succession\\CurriculumBuilderService@startPlan",
        "expected_test_path": "tests/Feature/CurriculumBuilderServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\CurriculumBuilderService;\n\nclass CurriculumBuilderServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\CurriculumBuilderService@startPlan\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_startplan_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\CurriculumBuilderService@startPlan is PROOF_READY but no test file at tests/Feature/CurriculumBuilderServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/DisputeReportGenerator.php::App\\Services\\Succession\\DisputeReportGenerator::generate",
        "fqmn": "App\\Services\\Succession\\DisputeReportGenerator@generate",
        "expected_test_path": "tests/Feature/DisputeReportGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\DisputeReportGenerator;\n\nclass DisputeReportGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\DisputeReportGenerator@generate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\DisputeReportGenerator@generate is PROOF_READY but no test file at tests/Feature/DisputeReportGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/Evaluators/NullMetricEvaluator.php::App\\Services\\Succession\\Evaluators\\NullMetricEvaluator::evaluate",
        "fqmn": "App\\Services\\Succession\\Evaluators\\NullMetricEvaluator@evaluate",
        "expected_test_path": "tests/Feature/NullMetricEvaluatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\Evaluators\\NullMetricEvaluator;\n\nclass NullMetricEvaluatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\Evaluators\\NullMetricEvaluator@evaluate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_evaluate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\Evaluators\\NullMetricEvaluator@evaluate is PROOF_READY but no test file at tests/Feature/NullMetricEvaluatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/GptSnapshotRecorder.php::App\\Services\\Succession\\GptSnapshotRecorder::call",
        "fqmn": "App\\Services\\Succession\\GptSnapshotRecorder@call",
        "expected_test_path": "tests/Feature/GptSnapshotRecorderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\GptSnapshotRecorder;\n\nclass GptSnapshotRecorderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\GptSnapshotRecorder@call\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_call_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\GptSnapshotRecorder@call is PROOF_READY but no test file at tests/Feature/GptSnapshotRecorderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validate",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validate",
        "expected_test_path": "tests/Feature/MetricBindingValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricBindingValidator;\n\nclass MetricBindingValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricBindingValidator@validate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricBindingValidator@validate is PROOF_READY but no test file at tests/Feature/MetricBindingValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validateCurriculum",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validateCurriculum",
        "expected_test_path": "tests/Feature/MetricBindingValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricBindingValidator;\n\nclass MetricBindingValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricBindingValidator@validateCurriculum\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatecurriculum_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricBindingValidator@validateCurriculum is PROOF_READY but no test file at tests/Feature/MetricBindingValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricBindingValidator.php::App\\Services\\Succession\\MetricBindingValidator::validateMilestonesIndividually",
        "fqmn": "App\\Services\\Succession\\MetricBindingValidator@validateMilestonesIndividually",
        "expected_test_path": "tests/Feature/MetricBindingValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricBindingValidator;\n\nclass MetricBindingValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricBindingValidator@validateMilestonesIndividually\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatemilestonesindividually_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricBindingValidator@validateMilestonesIndividually is PROOF_READY but no test file at tests/Feature/MetricBindingValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::all",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@all",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricCatalog;\n\nclass MetricCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricCatalog@all\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_all_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricCatalog@all is PROOF_READY but no test file at tests/Feature/MetricCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::exists",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@exists",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricCatalog;\n\nclass MetricCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricCatalog@exists\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exists_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricCatalog@exists is PROOF_READY but no test file at tests/Feature/MetricCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::forLocale",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@forLocale",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricCatalog;\n\nclass MetricCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricCatalog@forLocale\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forlocale_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricCatalog@forLocale is PROOF_READY but no test file at tests/Feature/MetricCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::get",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@get",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricCatalog;\n\nclass MetricCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricCatalog@get\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_get_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricCatalog@get is PROOF_READY but no test file at tests/Feature/MetricCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::isNative",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@isNative",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricCatalog;\n\nclass MetricCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricCatalog@isNative\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isnative_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricCatalog@isNative is PROOF_READY but no test file at tests/Feature/MetricCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::nativeKeys",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@nativeKeys",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricCatalog;\n\nclass MetricCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricCatalog@nativeKeys\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_nativekeys_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricCatalog@nativeKeys is PROOF_READY but no test file at tests/Feature/MetricCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricCatalog.php::App\\Services\\Succession\\MetricCatalog::requiresIntegration",
        "fqmn": "App\\Services\\Succession\\MetricCatalog@requiresIntegration",
        "expected_test_path": "tests/Feature/MetricCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricCatalog;\n\nclass MetricCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricCatalog@requiresIntegration\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_requiresintegration_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricCatalog@requiresIntegration is PROOF_READY but no test file at tests/Feature/MetricCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MetricCatalogGapLogger.php::App\\Services\\Succession\\MetricCatalogGapLogger::record",
        "fqmn": "App\\Services\\Succession\\MetricCatalogGapLogger@record",
        "expected_test_path": "tests/Feature/MetricCatalogGapLoggerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MetricCatalogGapLogger;\n\nclass MetricCatalogGapLoggerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MetricCatalogGapLogger@record\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_record_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MetricCatalogGapLogger@record is PROOF_READY but no test file at tests/Feature/MetricCatalogGapLoggerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/MilestoneBindingRewriter.php::App\\Services\\Succession\\MilestoneBindingRewriter::rewrite",
        "fqmn": "App\\Services\\Succession\\MilestoneBindingRewriter@rewrite",
        "expected_test_path": "tests/Feature/MilestoneBindingRewriterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\MilestoneBindingRewriter;\n\nclass MilestoneBindingRewriterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\MilestoneBindingRewriter@rewrite\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_rewrite_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\MilestoneBindingRewriter@rewrite is PROOF_READY but no test file at tests/Feature/MilestoneBindingRewriterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/PipelineStatusService.php::App\\Services\\Succession\\PipelineStatusService::forCompany",
        "fqmn": "App\\Services\\Succession\\PipelineStatusService@forCompany",
        "expected_test_path": "tests/Feature/PipelineStatusServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\PipelineStatusService;\n\nclass PipelineStatusServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\PipelineStatusService@forCompany\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_forcompany_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\PipelineStatusService@forCompany is PROOF_READY but no test file at tests/Feature/PipelineStatusServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/PipelineStatusService.php::App\\Services\\Succession\\PipelineStatusService::oneLiner",
        "fqmn": "App\\Services\\Succession\\PipelineStatusService@oneLiner",
        "expected_test_path": "tests/Feature/PipelineStatusServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\PipelineStatusService;\n\nclass PipelineStatusServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\PipelineStatusService@oneLiner\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_oneliner_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\PipelineStatusService@oneLiner is PROOF_READY but no test file at tests/Feature/PipelineStatusServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/PromotionAuditWriter.php::App\\Services\\Succession\\PromotionAuditWriter::recordComputation",
        "fqmn": "App\\Services\\Succession\\PromotionAuditWriter@recordComputation",
        "expected_test_path": "tests/Feature/PromotionAuditWriterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\PromotionAuditWriter;\n\nclass PromotionAuditWriterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\PromotionAuditWriter@recordComputation\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recordcomputation_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\PromotionAuditWriter@recordComputation is PROOF_READY but no test file at tests/Feature/PromotionAuditWriterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/PromotionValidationScoreService.php::App\\Services\\Succession\\PromotionValidationScoreService::evaluate",
        "fqmn": "App\\Services\\Succession\\PromotionValidationScoreService@evaluate",
        "expected_test_path": "tests/Feature/PromotionValidationScoreServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\PromotionValidationScoreService;\n\nclass PromotionValidationScoreServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\PromotionValidationScoreService@evaluate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_evaluate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\PromotionValidationScoreService@evaluate is PROOF_READY but no test file at tests/Feature/PromotionValidationScoreServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/PromotionValidationScoreService.php::App\\Services\\Succession\\PromotionValidationScoreService::evaluateWithWeightOverride",
        "fqmn": "App\\Services\\Succession\\PromotionValidationScoreService@evaluateWithWeightOverride",
        "expected_test_path": "tests/Feature/PromotionValidationScoreServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\PromotionValidationScoreService;\n\nclass PromotionValidationScoreServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\PromotionValidationScoreService@evaluateWithWeightOverride\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_evaluatewithweightoverride_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\PromotionValidationScoreService@evaluateWithWeightOverride is PROOF_READY but no test file at tests/Feature/PromotionValidationScoreServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseRecognitionGraphProvider.php::App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider::edges",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider@edges",
        "expected_test_path": "tests/Feature/DatabaseRecognitionGraphProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider;\n\nclass DatabaseRecognitionGraphProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider@edges\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_edges_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\Providers\\DatabaseRecognitionGraphProvider@edges is PROOF_READY but no test file at tests/Feature/DatabaseRecognitionGraphProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseTaskBadgeProvider.php::App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider::earnedBadgeIds",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider@earnedBadgeIds",
        "expected_test_path": "tests/Feature/DatabaseTaskBadgeProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider;\n\nclass DatabaseTaskBadgeProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider@earnedBadgeIds\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_earnedbadgeids_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\Providers\\DatabaseTaskBadgeProvider@earnedBadgeIds is PROOF_READY but no test file at tests/Feature/DatabaseTaskBadgeProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseTenureProvider.php::App\\Services\\Succession\\Providers\\DatabaseTenureProvider::trustSeedUserIds",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseTenureProvider@trustSeedUserIds",
        "expected_test_path": "tests/Feature/DatabaseTenureProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\Providers\\DatabaseTenureProvider;\n\nclass DatabaseTenureProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\Providers\\DatabaseTenureProvider@trustSeedUserIds\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_trustseeduserids_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\Providers\\DatabaseTenureProvider@trustSeedUserIds is PROOF_READY but no test file at tests/Feature/DatabaseTenureProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::companyTargetDistribution",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@companyTargetDistribution",
        "expected_test_path": "tests/Feature/DatabaseValueDistributionProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider;\n\nclass DatabaseValueDistributionProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@companyTargetDistribution\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_companytargetdistribution_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@companyTargetDistribution is PROOF_READY but no test file at tests/Feature/DatabaseValueDistributionProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::currentTargetId",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@currentTargetId",
        "expected_test_path": "tests/Feature/DatabaseValueDistributionProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider;\n\nclass DatabaseValueDistributionProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@currentTargetId\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_currenttargetid_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@currentTargetId is PROOF_READY but no test file at tests/Feature/DatabaseValueDistributionProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/Providers/DatabaseValueDistributionProvider.php::App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider::employeeDistribution",
        "fqmn": "App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@employeeDistribution",
        "expected_test_path": "tests/Feature/DatabaseValueDistributionProviderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider;\n\nclass DatabaseValueDistributionProviderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@employeeDistribution\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_employeedistribution_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\Providers\\DatabaseValueDistributionProvider@employeeDistribution is PROOF_READY but no test file at tests/Feature/DatabaseValueDistributionProviderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/QuarterlyOverrideExporter.php::App\\Services\\Succession\\QuarterlyOverrideExporter::collect",
        "fqmn": "App\\Services\\Succession\\QuarterlyOverrideExporter@collect",
        "expected_test_path": "tests/Feature/QuarterlyOverrideExporterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\QuarterlyOverrideExporter;\n\nclass QuarterlyOverrideExporterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\QuarterlyOverrideExporter@collect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_collect_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\QuarterlyOverrideExporter@collect is PROOF_READY but no test file at tests/Feature/QuarterlyOverrideExporterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/QuarterlyOverrideExporter.php::App\\Services\\Succession\\QuarterlyOverrideExporter::toCsv",
        "fqmn": "App\\Services\\Succession\\QuarterlyOverrideExporter@toCsv",
        "expected_test_path": "tests/Feature/QuarterlyOverrideExporterTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\QuarterlyOverrideExporter;\n\nclass QuarterlyOverrideExporterTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\QuarterlyOverrideExporter@toCsv\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tocsv_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\QuarterlyOverrideExporter@toCsv is PROOF_READY but no test file at tests/Feature/QuarterlyOverrideExporterTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/QuestCompletionDetector.php::App\\Services\\Succession\\QuestCompletionDetector::sweep",
        "fqmn": "App\\Services\\Succession\\QuestCompletionDetector@sweep",
        "expected_test_path": "tests/Feature/QuestCompletionDetectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\QuestCompletionDetector;\n\nclass QuestCompletionDetectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\QuestCompletionDetector@sweep\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sweep_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\QuestCompletionDetector@sweep is PROOF_READY but no test file at tests/Feature/QuestCompletionDetectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/RejectionQuestService.php::App\\Services\\Succession\\RejectionQuestService::generateForRejection",
        "fqmn": "App\\Services\\Succession\\RejectionQuestService@generateForRejection",
        "expected_test_path": "tests/Feature/RejectionQuestServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\RejectionQuestService;\n\nclass RejectionQuestServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\RejectionQuestService@generateForRejection\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generateforrejection_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\RejectionQuestService@generateForRejection is PROOF_READY but no test file at tests/Feature/RejectionQuestServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/SuccessionGptClient.php::App\\Services\\Succession\\SuccessionGptClient::generateCurriculum",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculum",
        "expected_test_path": "tests/Feature/SuccessionGptClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\SuccessionGptClient;\n\nclass SuccessionGptClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\SuccessionGptClient@generateCurriculum\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatecurriculum_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\SuccessionGptClient@generateCurriculum is PROOF_READY but no test file at tests/Feature/SuccessionGptClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/SuccessionGptClient.php::App\\Services\\Succession\\SuccessionGptClient::generateCurriculumWithRetry",
        "fqmn": "App\\Services\\Succession\\SuccessionGptClient@generateCurriculumWithRetry",
        "expected_test_path": "tests/Feature/SuccessionGptClientTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\SuccessionGptClient;\n\nclass SuccessionGptClientTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\SuccessionGptClient@generateCurriculumWithRetry\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generatecurriculumwithretry_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\SuccessionGptClient@generateCurriculumWithRetry is PROOF_READY but no test file at tests/Feature/SuccessionGptClientTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/SuccessionPointsService.php::App\\Services\\Succession\\SuccessionPointsService::creditMilestoneCompletion",
        "fqmn": "App\\Services\\Succession\\SuccessionPointsService@creditMilestoneCompletion",
        "expected_test_path": "tests/Feature/SuccessionPointsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\SuccessionPointsService;\n\nclass SuccessionPointsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\SuccessionPointsService@creditMilestoneCompletion\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_creditmilestonecompletion_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\SuccessionPointsService@creditMilestoneCompletion is PROOF_READY but no test file at tests/Feature/SuccessionPointsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Succession/SuccessorSelfScoreCalculator.php::App\\Services\\Succession\\SuccessorSelfScoreCalculator::recompute",
        "fqmn": "App\\Services\\Succession\\SuccessorSelfScoreCalculator@recompute",
        "expected_test_path": "tests/Feature/SuccessorSelfScoreCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Succession\\SuccessorSelfScoreCalculator;\n\nclass SuccessorSelfScoreCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Succession\\SuccessorSelfScoreCalculator@recompute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recompute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Succession\\SuccessorSelfScoreCalculator@recompute is PROOF_READY but no test file at tests/Feature/SuccessorSelfScoreCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Summaries/KpiSummaryBuilder.php::App\\Services\\Summaries\\KpiSummaryBuilder::build",
        "fqmn": "App\\Services\\Summaries\\KpiSummaryBuilder@build",
        "expected_test_path": "tests/Feature/KpiSummaryBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Summaries\\KpiSummaryBuilder;\n\nclass KpiSummaryBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Summaries\\KpiSummaryBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Summaries\\KpiSummaryBuilder@build is PROOF_READY but no test file at tests/Feature/KpiSummaryBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Summaries/OkrSummaryBuilder.php::App\\Services\\Summaries\\OkrSummaryBuilder::build",
        "fqmn": "App\\Services\\Summaries\\OkrSummaryBuilder@build",
        "expected_test_path": "tests/Feature/OkrSummaryBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Summaries\\OkrSummaryBuilder;\n\nclass OkrSummaryBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Summaries\\OkrSummaryBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Summaries\\OkrSummaryBuilder@build is PROOF_READY but no test file at tests/Feature/OkrSummaryBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TalentInsightsService.php::App\\Services\\TalentInsightsService::getTalent",
        "fqmn": "App\\Services\\TalentInsightsService@getTalent",
        "expected_test_path": "tests/Feature/TalentInsightsServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TalentInsightsService;\n\nclass TalentInsightsServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TalentInsightsService@getTalent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_gettalent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TalentInsightsService@getTalent is PROOF_READY but no test file at tests/Feature/TalentInsightsServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getLeaderWeightHistory",
        "fqmn": "App\\Services\\TalentModelService@getLeaderWeightHistory",
        "expected_test_path": "tests/Feature/TalentModelServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TalentModelService;\n\nclass TalentModelServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TalentModelService@getLeaderWeightHistory\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getleaderweighthistory_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\TalentModelService@getLeaderWeightHistory is PROOF_READY but no test file at tests/Feature/TalentModelServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getLeaderWeightsMeta",
        "fqmn": "App\\Services\\TalentModelService@getLeaderWeightsMeta",
        "expected_test_path": "tests/Feature/TalentModelServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TalentModelService;\n\nclass TalentModelServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TalentModelService@getLeaderWeightsMeta\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getleaderweightsmeta_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\TalentModelService@getLeaderWeightsMeta is PROOF_READY but no test file at tests/Feature/TalentModelServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getRiskWeights",
        "fqmn": "App\\Services\\TalentModelService@getRiskWeights",
        "expected_test_path": "tests/Feature/TalentModelServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TalentModelService;\n\nclass TalentModelServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TalentModelService@getRiskWeights\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getriskweights_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TalentModelService@getRiskWeights is PROOF_READY but no test file at tests/Feature/TalentModelServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TalentModelService.php::App\\Services\\TalentModelService::getRiskWeightsMeta",
        "fqmn": "App\\Services\\TalentModelService@getRiskWeightsMeta",
        "expected_test_path": "tests/Feature/TalentModelServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TalentModelService;\n\nclass TalentModelServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TalentModelService@getRiskWeightsMeta\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getriskweightsmeta_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TalentModelService@getRiskWeightsMeta is PROOF_READY but no test file at tests/Feature/TalentModelServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::computeFromNetCents",
        "fqmn": "App\\Services\\TaxService@computeFromNetCents",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TaxService;\n\nclass TaxServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TaxService@computeFromNetCents\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computefromnetcents_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TaxService@computeFromNetCents is PROOF_READY but no test file at tests/Feature/TaxServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::computeFromNetHalalas",
        "fqmn": "App\\Services\\TaxService@computeFromNetHalalas",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TaxService;\n\nclass TaxServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TaxService@computeFromNetHalalas\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computefromnethalalas_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TaxService@computeFromNetHalalas is PROOF_READY but no test file at tests/Feature/TaxServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRateBps",
        "fqmn": "App\\Services\\TaxService@getVatRateBps",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TaxService;\n\nclass TaxServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TaxService@getVatRateBps\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getvatratebps_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TaxService@getVatRateBps is PROOF_READY but no test file at tests/Feature/TaxServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRateDecimal",
        "fqmn": "App\\Services\\TaxService@getVatRateDecimal",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TaxService;\n\nclass TaxServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TaxService@getVatRateDecimal\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getvatratedecimal_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TaxService@getVatRateDecimal is PROOF_READY but no test file at tests/Feature/TaxServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::getVatRatePercent",
        "fqmn": "App\\Services\\TaxService@getVatRatePercent",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TaxService;\n\nclass TaxServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TaxService@getVatRatePercent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getvatratepercent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TaxService@getVatRatePercent is PROOF_READY but no test file at tests/Feature/TaxServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::splitInclusiveTotalCents",
        "fqmn": "App\\Services\\TaxService@splitInclusiveTotalCents",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TaxService;\n\nclass TaxServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TaxService@splitInclusiveTotalCents\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_splitinclusivetotalcents_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TaxService@splitInclusiveTotalCents is PROOF_READY but no test file at tests/Feature/TaxServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TaxService.php::App\\Services\\TaxService::splitInclusiveTotalHalalas",
        "fqmn": "App\\Services\\TaxService@splitInclusiveTotalHalalas",
        "expected_test_path": "tests/Feature/TaxServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TaxService;\n\nclass TaxServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TaxService@splitInclusiveTotalHalalas\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_splitinclusivetotalhalalas_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TaxService@splitInclusiveTotalHalalas is PROOF_READY but no test file at tests/Feature/TaxServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/TurnstileService.php::App\\Services\\TurnstileService::verify",
        "fqmn": "App\\Services\\TurnstileService@verify",
        "expected_test_path": "tests/Feature/TurnstileServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\TurnstileService;\n\nclass TurnstileServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\TurnstileService@verify\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_verify_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\TurnstileService@verify is PROOF_READY but no test file at tests/Feature/TurnstileServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetDataResolver.php::App\\Services\\WidgetDataResolver::resolve",
        "fqmn": "App\\Services\\WidgetDataResolver@resolve",
        "expected_test_path": "tests/Feature/WidgetDataResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetDataResolver;\n\nclass WidgetDataResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetDataResolver@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetDataResolver@resolve is PROOF_READY but no test file at tests/Feature/WidgetDataResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetDataResolver.php::App\\Services\\WidgetDataResolver::valueForKey",
        "fqmn": "App\\Services\\WidgetDataResolver@valueForKey",
        "expected_test_path": "tests/Feature/WidgetDataResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetDataResolver;\n\nclass WidgetDataResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetDataResolver@valueForKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_valueforkey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetDataResolver@valueForKey is PROOF_READY but no test file at tests/Feature/WidgetDataResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::categorize",
        "fqmn": "App\\Services\\WidgetMatrixService@categorize",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetMatrixService;\n\nclass WidgetMatrixServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetMatrixService@categorize\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_categorize_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetMatrixService@categorize is PROOF_READY but no test file at tests/Feature/WidgetMatrixServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::filterByClassification",
        "fqmn": "App\\Services\\WidgetMatrixService@filterByClassification",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetMatrixService;\n\nclass WidgetMatrixServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetMatrixService@filterByClassification\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_filterbyclassification_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetMatrixService@filterByClassification is PROOF_READY but no test file at tests/Feature/WidgetMatrixServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::filterByUiContainer",
        "fqmn": "App\\Services\\WidgetMatrixService@filterByUiContainer",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetMatrixService;\n\nclass WidgetMatrixServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetMatrixService@filterByUiContainer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_filterbyuicontainer_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetMatrixService@filterByUiContainer is PROOF_READY but no test file at tests/Feature/WidgetMatrixServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::getByCanonical",
        "fqmn": "App\\Services\\WidgetMatrixService@getByCanonical",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetMatrixService;\n\nclass WidgetMatrixServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetMatrixService@getByCanonical\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getbycanonical_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetMatrixService@getByCanonical is PROOF_READY but no test file at tests/Feature/WidgetMatrixServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::getEnabled",
        "fqmn": "App\\Services\\WidgetMatrixService@getEnabled",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetMatrixService;\n\nclass WidgetMatrixServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetMatrixService@getEnabled\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getenabled_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetMatrixService@getEnabled is PROOF_READY but no test file at tests/Feature/WidgetMatrixServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::groupByUiContainer",
        "fqmn": "App\\Services\\WidgetMatrixService@groupByUiContainer",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetMatrixService;\n\nclass WidgetMatrixServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetMatrixService@groupByUiContainer\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_groupbyuicontainer_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetMatrixService@groupByUiContainer is PROOF_READY but no test file at tests/Feature/WidgetMatrixServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/WidgetMatrixService.php::App\\Services\\WidgetMatrixService::hasProTier",
        "fqmn": "App\\Services\\WidgetMatrixService@hasProTier",
        "expected_test_path": "tests/Feature/WidgetMatrixServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\WidgetMatrixService;\n\nclass WidgetMatrixServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\WidgetMatrixService@hasProTier\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasprotier_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\WidgetMatrixService@hasProTier is PROOF_READY but no test file at tests/Feature/WidgetMatrixServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/AbstractReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget@resolve",
        "expected_test_path": "tests/Feature/AbstractReciprocityWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget;\n\nclass AbstractReciprocityWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\AbstractReciprocityWidget@resolve is PROOF_READY but no test file at tests/Feature/AbstractReciprocityWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/AfterHoursPercentageWidget.php::App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve",
        "expected_test_path": "tests/Feature/AfterHoursPercentageWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget;\n\nclass AfterHoursPercentageWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\AfterHoursPercentageWidget@resolve is PROOF_READY but no test file at tests/Feature/AfterHoursPercentageWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/AttachmentRateWidget.php::App\\Services\\Widgets\\Analytics\\AttachmentRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve",
        "expected_test_path": "tests/Feature/AttachmentRateWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\AttachmentRateWidget;\n\nclass AttachmentRateWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\AttachmentRateWidget@resolve is PROOF_READY but no test file at tests/Feature/AttachmentRateWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/AttritionRiskByTenureWidget.php::App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget@resolve",
        "expected_test_path": "tests/Feature/AttritionRiskByTenureWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget;\n\nclass AttritionRiskByTenureWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\AttritionRiskByTenureWidget@resolve is PROOF_READY but no test file at tests/Feature/AttritionRiskByTenureWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/AvgRecencyWidget.php::App\\Services\\Widgets\\Analytics\\AvgRecencyWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\AvgRecencyWidget@resolve",
        "expected_test_path": "tests/Feature/AvgRecencyWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\AvgRecencyWidget;\n\nclass AvgRecencyWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\AvgRecencyWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\AvgRecencyWidget@resolve is PROOF_READY but no test file at tests/Feature/AvgRecencyWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/BadgesEarnedWindowedWidget.php::App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve",
        "expected_test_path": "tests/Feature/BadgesEarnedWindowedWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget;\n\nclass BadgesEarnedWindowedWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\BadgesEarnedWindowedWidget@resolve is PROOF_READY but no test file at tests/Feature/BadgesEarnedWindowedWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/BadgeTargetsCompletionWidget.php::App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget@resolve",
        "expected_test_path": "tests/Feature/BadgeTargetsCompletionWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget;\n\nclass BadgeTargetsCompletionWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\BadgeTargetsCompletionWidget@resolve is PROOF_READY but no test file at tests/Feature/BadgeTargetsCompletionWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/BadgeTargetsWidget.php::App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget@resolve",
        "expected_test_path": "tests/Feature/BadgeTargetsWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget;\n\nclass BadgeTargetsWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\BadgeTargetsWidget@resolve is PROOF_READY but no test file at tests/Feature/BadgeTargetsWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/BridgeEmployeesWidget.php::App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget@resolve",
        "expected_test_path": "tests/Feature/BridgeEmployeesWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget;\n\nclass BridgeEmployeesWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\BridgeEmployeesWidget@resolve is PROOF_READY but no test file at tests/Feature/BridgeEmployeesWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/DiDAnalysisWidget.php::App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@resolve",
        "expected_test_path": "tests/Feature/DiDAnalysisWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget;\n\nclass DiDAnalysisWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\DiDAnalysisWidget@resolve is PROOF_READY but no test file at tests/Feature/DiDAnalysisWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/EngagementHealthSummariesWidget.php::App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget::backtest",
        "fqmn": "App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget@backtest",
        "expected_test_path": "tests/Feature/EngagementHealthSummariesWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget;\n\nclass EngagementHealthSummariesWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget@backtest\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_backtest_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\EngagementHealthSummariesWidget@backtest is PROOF_READY but no test file at tests/Feature/EngagementHealthSummariesWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/GiniCoefficientWidget.php::App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve",
        "expected_test_path": "tests/Feature/GiniCoefficientWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget;\n\nclass GiniCoefficientWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\GiniCoefficientWidget@resolve is PROOF_READY but no test file at tests/Feature/GiniCoefficientWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/GiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\GiverCoverageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve",
        "expected_test_path": "tests/Feature/GiverCoverageWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\GiverCoverageWidget;\n\nclass GiverCoverageWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\GiverCoverageWidget@resolve is PROOF_READY but no test file at tests/Feature/GiverCoverageWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/InternalMobilityRateWidget.php::App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget@resolve",
        "expected_test_path": "tests/Feature/InternalMobilityRateWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget;\n\nclass InternalMobilityRateWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\InternalMobilityRateWidget@resolve is PROOF_READY but no test file at tests/Feature/InternalMobilityRateWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerBudgetUtilizationWidget.php::App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget@resolve",
        "expected_test_path": "tests/Feature/ManagerBudgetUtilizationWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget;\n\nclass ManagerBudgetUtilizationWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\ManagerBudgetUtilizationWidget@resolve is PROOF_READY but no test file at tests/Feature/ManagerBudgetUtilizationWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerResponseRateWidget.php::App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget@resolve",
        "expected_test_path": "tests/Feature/ManagerResponseRateWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget;\n\nclass ManagerResponseRateWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\ManagerResponseRateWidget@resolve is PROOF_READY but no test file at tests/Feature/ManagerResponseRateWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/ManagerVelocityWidget.php::App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget@resolve",
        "expected_test_path": "tests/Feature/ManagerVelocityWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget;\n\nclass ManagerVelocityWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\ManagerVelocityWidget@resolve is PROOF_READY but no test file at tests/Feature/ManagerVelocityWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/NetworkIsolationWidget.php::App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget::calculateNetworkSnapshots",
        "fqmn": "App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget@calculateNetworkSnapshots",
        "expected_test_path": "tests/Feature/NetworkIsolationWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget;\n\nclass NetworkIsolationWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget@calculateNetworkSnapshots\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_calculatenetworksnapshots_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\NetworkIsolationWidget@calculateNetworkSnapshots is PROOF_READY but no test file at tests/Feature/NetworkIsolationWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/OkrMomentumForecastWidget.php::App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget@resolve",
        "expected_test_path": "tests/Feature/OkrMomentumForecastWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget;\n\nclass OkrMomentumForecastWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\OkrMomentumForecastWidget@resolve is PROOF_READY but no test file at tests/Feature/OkrMomentumForecastWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/PeerToPeerRatioWidget.php::App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget@resolve",
        "expected_test_path": "tests/Feature/PeerToPeerRatioWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget;\n\nclass PeerToPeerRatioWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\PeerToPeerRatioWidget@resolve is PROOF_READY but no test file at tests/Feature/PeerToPeerRatioWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/PointsEarnedWindowedWidget.php::App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget@resolve",
        "expected_test_path": "tests/Feature/PointsEarnedWindowedWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget;\n\nclass PointsEarnedWindowedWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\PointsEarnedWindowedWidget@resolve is PROOF_READY but no test file at tests/Feature/PointsEarnedWindowedWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/ReceiverCoverageWidget.php::App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@resolve",
        "expected_test_path": "tests/Feature/ReceiverCoverageWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget;\n\nclass ReceiverCoverageWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\ReceiverCoverageWidget@resolve is PROOF_READY but no test file at tests/Feature/ReceiverCoverageWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/ReciprocityWidget.php::App\\Services\\Widgets\\Analytics\\ReciprocityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ReciprocityWidget@resolve",
        "expected_test_path": "tests/Feature/ReciprocityWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\ReciprocityWidget;\n\nclass ReciprocityWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\ReciprocityWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\ReciprocityWidget@resolve is PROOF_READY but no test file at tests/Feature/ReciprocityWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/RecognitionEquityWidget.php::App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget@resolve",
        "expected_test_path": "tests/Feature/RecognitionEquityWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget;\n\nclass RecognitionEquityWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\RecognitionEquityWidget@resolve is PROOF_READY but no test file at tests/Feature/RecognitionEquityWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/RecognitionOutcomeCorrelationWidget.php::App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget@resolve",
        "expected_test_path": "tests/Feature/RecognitionOutcomeCorrelationWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget;\n\nclass RecognitionOutcomeCorrelationWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\RecognitionOutcomeCorrelationWidget@resolve is PROOF_READY but no test file at tests/Feature/RecognitionOutcomeCorrelationWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/RetentionRateWidget.php::App\\Services\\Widgets\\Analytics\\RetentionRateWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\RetentionRateWidget@resolve",
        "expected_test_path": "tests/Feature/RetentionRateWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\RetentionRateWidget;\n\nclass RetentionRateWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\RetentionRateWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\RetentionRateWidget@resolve is PROOF_READY but no test file at tests/Feature/RetentionRateWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/SilentDaysMapWidget.php::App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@resolve",
        "expected_test_path": "tests/Feature/SilentDaysMapWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget;\n\nclass SilentDaysMapWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\SilentDaysMapWidget@resolve is PROOF_READY but no test file at tests/Feature/SilentDaysMapWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/TaskAnalyticsWidget.php::App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget@resolve",
        "expected_test_path": "tests/Feature/TaskAnalyticsWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget;\n\nclass TaskAnalyticsWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\TaskAnalyticsWidget@resolve is PROOF_READY but no test file at tests/Feature/TaskAnalyticsWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/TaskMonthlyRollupWidget.php::App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve",
        "expected_test_path": "tests/Feature/TaskMonthlyRollupWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget;\n\nclass TaskMonthlyRollupWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\TaskMonthlyRollupWidget@resolve is PROOF_READY but no test file at tests/Feature/TaskMonthlyRollupWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/TimeToFirstReactionWidget.php::App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget@resolve",
        "expected_test_path": "tests/Feature/TimeToFirstReactionWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget;\n\nclass TimeToFirstReactionWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\TimeToFirstReactionWidget@resolve is PROOF_READY but no test file at tests/Feature/TimeToFirstReactionWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/Top10ShareWidget.php::App\\Services\\Widgets\\Analytics\\Top10ShareWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\Top10ShareWidget@resolve",
        "expected_test_path": "tests/Feature/Top10ShareWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\Top10ShareWidget;\n\nclass Top10ShareWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\Top10ShareWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\Top10ShareWidget@resolve is PROOF_READY but no test file at tests/Feature/Top10ShareWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/UnderRecognizedHighProducersWidget.php::App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@resolve",
        "expected_test_path": "tests/Feature/UnderRecognizedHighProducersWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget;\n\nclass UnderRecognizedHighProducersWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\UnderRecognizedHighProducersWidget@resolve is PROOF_READY but no test file at tests/Feature/UnderRecognizedHighProducersWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/ValueAdoptionWidget.php::App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget@resolve",
        "expected_test_path": "tests/Feature/ValueAdoptionWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget;\n\nclass ValueAdoptionWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\ValueAdoptionWidget@resolve is PROOF_READY but no test file at tests/Feature/ValueAdoptionWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Analytics/WeekendWeekdayRatioWidget.php::App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget@resolve",
        "expected_test_path": "tests/Feature/WeekendWeekdayRatioWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget;\n\nclass WeekendWeekdayRatioWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Analytics\\WeekendWeekdayRatioWidget@resolve is PROOF_READY but no test file at tests/Feature/WeekendWeekdayRatioWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseSnapshotWidget.php::App\\Services\\Widgets\\BaseSnapshotWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\BaseSnapshotWidget@resolve",
        "expected_test_path": "tests/Feature/BaseSnapshotWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseSnapshotWidget;\n\nclass BaseSnapshotWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseSnapshotWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseSnapshotWidget@resolve is PROOF_READY but no test file at tests/Feature/BaseSnapshotWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::requestCache",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@requestCache",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@requestCache\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_requestcache_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@requestCache is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolve",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@resolve is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveDeduped",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveDeduped",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@resolveDeduped\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvededuped_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@resolveDeduped is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveHeadcount",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveHeadcount",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@resolveHeadcount\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolveheadcount_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@resolveHeadcount is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveScope",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveScope",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@resolveScope\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvescope_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@resolveScope is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveWindow",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveWindow",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@resolveWindow\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvewindow_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@resolveWindow is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::resolveWindowWithTz",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@resolveWindowWithTz",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@resolveWindowWithTz\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvewindowwithtz_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@resolveWindowWithTz is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::widgetCacheKey",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@widgetCacheKey",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@widgetCacheKey\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_widgetcachekey_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@widgetCacheKey is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/BaseWidget.php::App\\Services\\Widgets\\BaseWidget::window",
        "fqmn": "App\\Services\\Widgets\\BaseWidget@window",
        "expected_test_path": "tests/Feature/BaseWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\BaseWidget;\n\nclass BaseWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\BaseWidget@window\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_window_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\BaseWidget@window is PROOF_READY but no test file at tests/Feature/BaseWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/CompanyStatusLineBuilder.php::App\\Services\\Widgets\\CompanyStatusLineBuilder::build",
        "fqmn": "App\\Services\\Widgets\\CompanyStatusLineBuilder@build",
        "expected_test_path": "tests/Feature/CompanyStatusLineBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\CompanyStatusLineBuilder;\n\nclass CompanyStatusLineBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\CompanyStatusLineBuilder@build\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_build_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\CompanyStatusLineBuilder@build is PROOF_READY but no test file at tests/Feature/CompanyStatusLineBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/DrilldownSignalDetector.php::App\\Services\\Widgets\\DrilldownSignalDetector::hasAcData",
        "fqmn": "App\\Services\\Widgets\\DrilldownSignalDetector@hasAcData",
        "expected_test_path": "tests/Feature/DrilldownSignalDetectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\DrilldownSignalDetector;\n\nclass DrilldownSignalDetectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\DrilldownSignalDetector@hasAcData\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hasacdata_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\DrilldownSignalDetector@hasAcData is PROOF_READY but no test file at tests/Feature/DrilldownSignalDetectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/DrilldownSignalDetector.php::App\\Services\\Widgets\\DrilldownSignalDetector::resolveSignalType",
        "fqmn": "App\\Services\\Widgets\\DrilldownSignalDetector@resolveSignalType",
        "expected_test_path": "tests/Feature/DrilldownSignalDetectorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\DrilldownSignalDetector;\n\nclass DrilldownSignalDetectorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\DrilldownSignalDetector@resolveSignalType\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvesignaltype_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\DrilldownSignalDetector@resolveSignalType is PROOF_READY but no test file at tests/Feature/DrilldownSignalDetectorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Engines/NetworkIsolationEngine.php::App\\Services\\Widgets\\Engines\\NetworkIsolationEngine::run",
        "fqmn": "App\\Services\\Widgets\\Engines\\NetworkIsolationEngine@run",
        "expected_test_path": "tests/Feature/NetworkIsolationEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Engines\\NetworkIsolationEngine;\n\nclass NetworkIsolationEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Engines\\NetworkIsolationEngine@run\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_run_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Engines\\NetworkIsolationEngine@run is PROOF_READY but no test file at tests/Feature/NetworkIsolationEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Engines/TimelinessEngine.php::App\\Services\\Widgets\\Engines\\TimelinessEngine::run",
        "fqmn": "App\\Services\\Widgets\\Engines\\TimelinessEngine@run",
        "expected_test_path": "tests/Feature/TimelinessEngineTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Engines\\TimelinessEngine;\n\nclass TimelinessEngineTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Engines\\TimelinessEngine@run\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_run_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Engines\\TimelinessEngine@run is PROOF_READY but no test file at tests/Feature/TimelinessEngineTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Predictive/BehaviorDriversWidget.php::App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget@resolve",
        "expected_test_path": "tests/Feature/BehaviorDriversWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget;\n\nclass BehaviorDriversWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Predictive\\BehaviorDriversWidget@resolve is PROOF_READY but no test file at tests/Feature/BehaviorDriversWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/Widgets/Predictive/TeamStabilityIndexWidget.php::App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget::resolve",
        "fqmn": "App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget@resolve",
        "expected_test_path": "tests/Feature/TeamStabilityIndexWidgetTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget;\n\nclass TeamStabilityIndexWidgetTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Services\\Widgets\\Predictive\\TeamStabilityIndexWidget@resolve is PROOF_READY but no test file at tests/Feature/TeamStabilityIndexWidgetTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::customerConverted",
        "fqmn": "App\\Services\\XCapi@customerConverted",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\XCapi;\n\nclass XCapiTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\XCapi@customerConverted\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_customerconverted_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\XCapi@customerConverted is PROOF_READY but no test file at tests/Feature/XCapiTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::demoBooked",
        "fqmn": "App\\Services\\XCapi@demoBooked",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\XCapi;\n\nclass XCapiTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\XCapi@demoBooked\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_demobooked_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\XCapi@demoBooked is PROOF_READY but no test file at tests/Feature/XCapiTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::leadSubmitted",
        "fqmn": "App\\Services\\XCapi@leadSubmitted",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\XCapi;\n\nclass XCapiTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\XCapi@leadSubmitted\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_leadsubmitted_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\XCapi@leadSubmitted is PROOF_READY but no test file at tests/Feature/XCapiTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::track",
        "fqmn": "App\\Services\\XCapi@track",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\XCapi;\n\nclass XCapiTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\XCapi@track\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_track_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\XCapi@track is PROOF_READY but no test file at tests/Feature/XCapiTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/XCapi.php::App\\Services\\XCapi::trialStarted",
        "fqmn": "App\\Services\\XCapi@trialStarted",
        "expected_test_path": "tests/Feature/XCapiTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\XCapi;\n\nclass XCapiTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\XCapi@trialStarted\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_trialstarted_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\XCapi@trialStarted is PROOF_READY but no test file at tests/Feature/XCapiTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::getStatus",
        "fqmn": "App\\Services\\ZeptoMailService@getStatus",
        "expected_test_path": "tests/Feature/ZeptoMailServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZeptoMailService;\n\nclass ZeptoMailServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZeptoMailService@getStatus\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getstatus_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZeptoMailService@getStatus is PROOF_READY but no test file at tests/Feature/ZeptoMailServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::isEnabled",
        "fqmn": "App\\Services\\ZeptoMailService@isEnabled",
        "expected_test_path": "tests/Feature/ZeptoMailServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZeptoMailService;\n\nclass ZeptoMailServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZeptoMailService@isEnabled\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isenabled_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZeptoMailService@isEnabled is PROOF_READY but no test file at tests/Feature/ZeptoMailServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendBulkEmails",
        "fqmn": "App\\Services\\ZeptoMailService@sendBulkEmails",
        "expected_test_path": "tests/Feature/ZeptoMailServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZeptoMailService;\n\nclass ZeptoMailServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZeptoMailService@sendBulkEmails\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendbulkemails_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZeptoMailService@sendBulkEmails is PROOF_READY but no test file at tests/Feature/ZeptoMailServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZeptoMailService.php::App\\Services\\ZeptoMailService::sendEmail",
        "fqmn": "App\\Services\\ZeptoMailService@sendEmail",
        "expected_test_path": "tests/Feature/ZeptoMailServiceTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZeptoMailService;\n\nclass ZeptoMailServiceTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZeptoMailService@sendEmail\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendemail_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZeptoMailService@sendEmail is PROOF_READY but no test file at tests/Feature/ZeptoMailServiceTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateAdvance",
        "fqmn": "App\\Services\\ZohoDataValidator@validateAdvance",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoDataValidator;\n\nclass ZohoDataValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoDataValidator@validateAdvance\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validateadvance_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoDataValidator@validateAdvance is PROOF_READY but no test file at tests/Feature/ZohoDataValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateCompanyForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateCompanyForZoho",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoDataValidator;\n\nclass ZohoDataValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoDataValidator@validateCompanyForZoho\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatecompanyforzoho_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoDataValidator@validateCompanyForZoho is PROOF_READY but no test file at tests/Feature/ZohoDataValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateContact",
        "fqmn": "App\\Services\\ZohoDataValidator@validateContact",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoDataValidator;\n\nclass ZohoDataValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoDataValidator@validateContact\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatecontact_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoDataValidator@validateContact is PROOF_READY but no test file at tests/Feature/ZohoDataValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateInvoice",
        "fqmn": "App\\Services\\ZohoDataValidator@validateInvoice",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoDataValidator;\n\nclass ZohoDataValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoDataValidator@validateInvoice\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validateinvoice_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoDataValidator@validateInvoice is PROOF_READY but no test file at tests/Feature/ZohoDataValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateOrderForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateOrderForZoho",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoDataValidator;\n\nclass ZohoDataValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoDataValidator@validateOrderForZoho\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validateorderforzoho_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoDataValidator@validateOrderForZoho is PROOF_READY but no test file at tests/Feature/ZohoDataValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validatePaymentApplication",
        "fqmn": "App\\Services\\ZohoDataValidator@validatePaymentApplication",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoDataValidator;\n\nclass ZohoDataValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoDataValidator@validatePaymentApplication\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatepaymentapplication_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoDataValidator@validatePaymentApplication is PROOF_READY but no test file at tests/Feature/ZohoDataValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validateProductForZoho",
        "fqmn": "App\\Services\\ZohoDataValidator@validateProductForZoho",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoDataValidator;\n\nclass ZohoDataValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoDataValidator@validateProductForZoho\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validateproductforzoho_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoDataValidator@validateProductForZoho is PROOF_READY but no test file at tests/Feature/ZohoDataValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoDataValidator.php::App\\Services\\ZohoDataValidator::validatePurchaseOrder",
        "fqmn": "App\\Services\\ZohoDataValidator@validatePurchaseOrder",
        "expected_test_path": "tests/Feature/ZohoDataValidatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoDataValidator;\n\nclass ZohoDataValidatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoDataValidator@validatePurchaseOrder\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_validatepurchaseorder_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoDataValidator@validatePurchaseOrder is PROOF_READY but no test file at tests/Feature/ZohoDataValidatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::checkHealth",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@checkHealth",
        "expected_test_path": "tests/Feature/ZohoIntegrationMonitorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoIntegrationMonitor;\n\nclass ZohoIntegrationMonitorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoIntegrationMonitor@checkHealth\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_checkhealth_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoIntegrationMonitor@checkHealth is PROOF_READY but no test file at tests/Feature/ZohoIntegrationMonitorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Serv",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Services/ZohoIntegrationMonitor.php::App\\Services\\ZohoIntegrationMonitor::sendAlert",
        "fqmn": "App\\Services\\ZohoIntegrationMonitor@sendAlert",
        "expected_test_path": "tests/Feature/ZohoIntegrationMonitorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Services\\ZohoIntegrationMonitor;\n\nclass ZohoIntegrationMonitorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Services\\ZohoIntegrationMonitor@sendAlert\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendalert_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Services\\ZohoIntegrationMonitor@sendAlert is PROOF_READY but no test file at tests/Feature/ZohoIntegrationMonitorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::diffInBusinessDays",
        "fqmn": "App\\Support\\BusinessTimeCalculator@diffInBusinessDays",
        "expected_test_path": "tests/Unit/BusinessTimeCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\BusinessTimeCalculator;\n\nclass BusinessTimeCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\BusinessTimeCalculator@diffInBusinessDays\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_diffinbusinessdays_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\BusinessTimeCalculator@diffInBusinessDays is PROOF_READY but no test file at tests/Unit/BusinessTimeCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::diffInMinutes",
        "fqmn": "App\\Support\\BusinessTimeCalculator@diffInMinutes",
        "expected_test_path": "tests/Unit/BusinessTimeCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\BusinessTimeCalculator;\n\nclass BusinessTimeCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\BusinessTimeCalculator@diffInMinutes\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_diffinminutes_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\BusinessTimeCalculator@diffInMinutes is PROOF_READY but no test file at tests/Unit/BusinessTimeCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/BusinessTimeCalculator.php::App\\Support\\BusinessTimeCalculator::resolveSettings",
        "fqmn": "App\\Support\\BusinessTimeCalculator@resolveSettings",
        "expected_test_path": "tests/Unit/BusinessTimeCalculatorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\BusinessTimeCalculator;\n\nclass BusinessTimeCalculatorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\BusinessTimeCalculator@resolveSettings\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvesettings_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\BusinessTimeCalculator@resolveSettings is PROOF_READY but no test file at tests/Unit/BusinessTimeCalculatorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/ControlRoom/WidgetRenderTracker.php::App\\Support\\ControlRoom\\WidgetRenderTracker::failures",
        "fqmn": "App\\Support\\ControlRoom\\WidgetRenderTracker@failures",
        "expected_test_path": "tests/Unit/WidgetRenderTrackerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\ControlRoom\\WidgetRenderTracker;\n\nclass WidgetRenderTrackerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\ControlRoom\\WidgetRenderTracker@failures\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_failures_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\ControlRoom\\WidgetRenderTracker@failures is PROOF_READY but no test file at tests/Unit/WidgetRenderTrackerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/EmailTemplateCatalog.php::App\\Support\\EmailTemplateCatalog::all",
        "fqmn": "App\\Support\\EmailTemplateCatalog@all",
        "expected_test_path": "tests/Unit/EmailTemplateCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\EmailTemplateCatalog;\n\nclass EmailTemplateCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\EmailTemplateCatalog@all\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_all_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\EmailTemplateCatalog@all is PROOF_READY but no test file at tests/Unit/EmailTemplateCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/EmployerNav.php::App\\Support\\EmployerNav::groups",
        "fqmn": "App\\Support\\EmployerNav@groups",
        "expected_test_path": "tests/Unit/EmployerNavTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\EmployerNav;\n\nclass EmployerNavTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\EmployerNav@groups\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_groups_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\EmployerNav@groups is PROOF_READY but no test file at tests/Unit/EmployerNavTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/EmployerNav.php::App\\Support\\EmployerNav::items",
        "fqmn": "App\\Support\\EmployerNav@items",
        "expected_test_path": "tests/Unit/EmployerNavTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\EmployerNav;\n\nclass EmployerNavTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\EmployerNav@items\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_items_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\EmployerNav@items is PROOF_READY but no test file at tests/Unit/EmployerNavTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::expand",
        "fqmn": "App\\Support\\FeatureBundles@expand",
        "expected_test_path": "tests/Unit/FeatureBundlesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureBundles;\n\nclass FeatureBundlesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureBundles@expand\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_expand_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureBundles@expand is PROOF_READY but no test file at tests/Unit/FeatureBundlesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::expandBooleans",
        "fqmn": "App\\Support\\FeatureBundles@expandBooleans",
        "expected_test_path": "tests/Unit/FeatureBundlesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureBundles;\n\nclass FeatureBundlesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureBundles@expandBooleans\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_expandbooleans_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureBundles@expandBooleans is PROOF_READY but no test file at tests/Unit/FeatureBundlesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureBundles.php::App\\Support\\FeatureBundles::map",
        "fqmn": "App\\Support\\FeatureBundles@map",
        "expected_test_path": "tests/Unit/FeatureBundlesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureBundles;\n\nclass FeatureBundlesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureBundles@map\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_map_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureBundles@map is PROOF_READY but no test file at tests/Unit/FeatureBundlesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureGateViewData.php::App\\Support\\FeatureGateViewData::compute",
        "fqmn": "App\\Support\\FeatureGateViewData@compute",
        "expected_test_path": "tests/Unit/FeatureGateViewDataTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureGateViewData;\n\nclass FeatureGateViewDataTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureGateViewData@compute\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_compute_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureGateViewData@compute is PROOF_READY but no test file at tests/Unit/FeatureGateViewDataTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::activeWindow",
        "fqmn": "App\\Support\\FeaturePreview@activeWindow",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeaturePreview;\n\nclass FeaturePreviewTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeaturePreview@activeWindow\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_activewindow_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeaturePreview@activeWindow is PROOF_READY but no test file at tests/Unit/FeaturePreviewTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::canActivateNow",
        "fqmn": "App\\Support\\FeaturePreview@canActivateNow",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeaturePreview;\n\nclass FeaturePreviewTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeaturePreview@canActivateNow\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canactivatenow_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeaturePreview@canActivateNow is PROOF_READY but no test file at tests/Unit/FeaturePreviewTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::canStartNowForUser",
        "fqmn": "App\\Support\\FeaturePreview@canStartNowForUser",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeaturePreview;\n\nclass FeaturePreviewTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeaturePreview@canStartNowForUser\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canstartnowforuser_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeaturePreview@canStartNowForUser is PROOF_READY but no test file at tests/Unit/FeaturePreviewTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::eligible",
        "fqmn": "App\\Support\\FeaturePreview@eligible",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeaturePreview;\n\nclass FeaturePreviewTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeaturePreview@eligible\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_eligible_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeaturePreview@eligible is PROOF_READY but no test file at tests/Unit/FeaturePreviewTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::isEligibleRole",
        "fqmn": "App\\Support\\FeaturePreview@isEligibleRole",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeaturePreview;\n\nclass FeaturePreviewTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeaturePreview@isEligibleRole\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_iseligiblerole_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeaturePreview@isEligibleRole is PROOF_READY but no test file at tests/Unit/FeaturePreviewTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeaturePreview.php::App\\Support\\FeaturePreview::start",
        "fqmn": "App\\Support\\FeaturePreview@start",
        "expected_test_path": "tests/Unit/FeaturePreviewTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeaturePreview;\n\nclass FeaturePreviewTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeaturePreview@start\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_start_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeaturePreview@start is PROOF_READY but no test file at tests/Unit/FeaturePreviewTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::all",
        "fqmn": "App\\Support\\FeatureRegistry@all",
        "expected_test_path": "tests/Unit/FeatureRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureRegistry;\n\nclass FeatureRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureRegistry@all\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_all_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureRegistry@all is PROOF_READY but no test file at tests/Unit/FeatureRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::exists",
        "fqmn": "App\\Support\\FeatureRegistry@exists",
        "expected_test_path": "tests/Unit/FeatureRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureRegistry;\n\nclass FeatureRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureRegistry@exists\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exists_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureRegistry@exists is PROOF_READY but no test file at tests/Unit/FeatureRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureRegistry.php::App\\Support\\FeatureRegistry::isPreviewable",
        "fqmn": "App\\Support\\FeatureRegistry@isPreviewable",
        "expected_test_path": "tests/Unit/FeatureRegistryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureRegistry;\n\nclass FeatureRegistryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureRegistry@isPreviewable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_ispreviewable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureRegistry@isPreviewable is PROOF_READY but no test file at tests/Unit/FeatureRegistryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::allSlugs",
        "fqmn": "App\\Support\\Features\\FeatureGroups@allSlugs",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureGroups;\n\nclass FeatureGroupsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureGroups@allSlugs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allslugs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureGroups@allSlugs is PROOF_READY but no test file at tests/Unit/FeatureGroupsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::formPathsForGroup",
        "fqmn": "App\\Support\\Features\\FeatureGroups@formPathsForGroup",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureGroups;\n\nclass FeatureGroupsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureGroups@formPathsForGroup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formpathsforgroup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureGroups@formPathsForGroup is PROOF_READY but no test file at tests/Unit/FeatureGroupsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::groups",
        "fqmn": "App\\Support\\Features\\FeatureGroups@groups",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureGroups;\n\nclass FeatureGroupsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureGroups@groups\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_groups_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureGroups@groups is PROOF_READY but no test file at tests/Unit/FeatureGroupsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::masterChildren",
        "fqmn": "App\\Support\\Features\\FeatureGroups@masterChildren",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureGroups;\n\nclass FeatureGroupsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureGroups@masterChildren\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_masterchildren_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureGroups@masterChildren is PROOF_READY but no test file at tests/Unit/FeatureGroupsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureGroups.php::App\\Support\\Features\\FeatureGroups::masterPaths",
        "fqmn": "App\\Support\\Features\\FeatureGroups@masterPaths",
        "expected_test_path": "tests/Unit/FeatureGroupsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureGroups;\n\nclass FeatureGroupsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureGroups@masterPaths\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_masterpaths_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureGroups@masterPaths is PROOF_READY but no test file at tests/Unit/FeatureGroupsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::computeMasters",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters",
        "expected_test_path": "tests/Unit/FeatureOverridesNormalizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureOverridesNormalizer;\n\nclass FeatureOverridesNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_computemasters_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureOverridesNormalizer@computeMasters is PROOF_READY but no test file at tests/Unit/FeatureOverridesNormalizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::flattenOverrides",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@flattenOverrides",
        "expected_test_path": "tests/Unit/FeatureOverridesNormalizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureOverridesNormalizer;\n\nclass FeatureOverridesNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureOverridesNormalizer@flattenOverrides\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_flattenoverrides_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureOverridesNormalizer@flattenOverrides is PROOF_READY but no test file at tests/Unit/FeatureOverridesNormalizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::groupOverrides",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@groupOverrides",
        "expected_test_path": "tests/Unit/FeatureOverridesNormalizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureOverridesNormalizer;\n\nclass FeatureOverridesNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureOverridesNormalizer@groupOverrides\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_groupoverrides_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureOverridesNormalizer@groupOverrides is PROOF_READY but no test file at tests/Unit/FeatureOverridesNormalizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureOverridesNormalizer.php::App\\Support\\Features\\FeatureOverridesNormalizer::toBool",
        "fqmn": "App\\Support\\Features\\FeatureOverridesNormalizer@toBool",
        "expected_test_path": "tests/Unit/FeatureOverridesNormalizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureOverridesNormalizer;\n\nclass FeatureOverridesNormalizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureOverridesNormalizer@toBool\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_tobool_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureOverridesNormalizer@toBool is PROOF_READY but no test file at tests/Unit/FeatureOverridesNormalizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::all",
        "fqmn": "App\\Support\\Features\\Features@all",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@all\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_all_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@all is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::allSlugs",
        "fqmn": "App\\Support\\Features\\Features@allSlugs",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@allSlugs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_allslugs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@allSlugs is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::bundleAliasSlugs",
        "fqmn": "App\\Support\\Features\\Features@bundleAliasSlugs",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@bundleAliasSlugs\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_bundlealiasslugs_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@bundleAliasSlugs is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::exists",
        "fqmn": "App\\Support\\Features\\Features@exists",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@exists\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exists_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@exists is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::formPathsForGroup",
        "fqmn": "App\\Support\\Features\\Features@formPathsForGroup",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@formPathsForGroup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formpathsforgroup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@formPathsForGroup is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::groupAliases",
        "fqmn": "App\\Support\\Features\\Features@groupAliases",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@groupAliases\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_groupaliases_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@groupAliases is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::groups",
        "fqmn": "App\\Support\\Features\\Features@groups",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@groups\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_groups_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@groups is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::isPreviewable",
        "fqmn": "App\\Support\\Features\\Features@isPreviewable",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@isPreviewable\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_ispreviewable_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@isPreviewable is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::masterChildren",
        "fqmn": "App\\Support\\Features\\Features@masterChildren",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@masterChildren\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_masterchildren_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@masterChildren is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/Features.php::App\\Support\\Features\\Features::masterPaths",
        "fqmn": "App\\Support\\Features\\Features@masterPaths",
        "expected_test_path": "tests/Unit/FeaturesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\Features;\n\nclass FeaturesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\Features@masterPaths\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_masterpaths_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\Features@masterPaths is PROOF_READY but no test file at tests/Unit/FeaturesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureToggleSchemas.php::App\\Support\\Features\\FeatureToggleSchemas::connectGroup",
        "fqmn": "App\\Support\\Features\\FeatureToggleSchemas@connectGroup",
        "expected_test_path": "tests/Unit/FeatureToggleSchemasTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureToggleSchemas;\n\nclass FeatureToggleSchemasTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureToggleSchemas@connectGroup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_connectgroup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureToggleSchemas@connectGroup is PROOF_READY but no test file at tests/Unit/FeatureToggleSchemasTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Features/FeatureToggleSchemas.php::App\\Support\\Features\\FeatureToggleSchemas::freeSubscriptionGroups",
        "fqmn": "App\\Support\\Features\\FeatureToggleSchemas@freeSubscriptionGroups",
        "expected_test_path": "tests/Unit/FeatureToggleSchemasTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Features\\FeatureToggleSchemas;\n\nclass FeatureToggleSchemasTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Features\\FeatureToggleSchemas@freeSubscriptionGroups\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_freesubscriptiongroups_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Features\\FeatureToggleSchemas@freeSubscriptionGroups is PROOF_READY but no test file at tests/Unit/FeatureToggleSchemasTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureToggleForm.php::App\\Support\\FeatureToggleForm::schema",
        "fqmn": "App\\Support\\FeatureToggleForm@schema",
        "expected_test_path": "tests/Unit/FeatureToggleFormTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureToggleForm;\n\nclass FeatureToggleFormTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureToggleForm@schema\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_schema_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureToggleForm@schema is PROOF_READY but no test file at tests/Unit/FeatureToggleFormTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::canEditPage",
        "fqmn": "App\\Support\\FeatureVisibility@canEditPage",
        "expected_test_path": "tests/Unit/FeatureVisibilityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureVisibility;\n\nclass FeatureVisibilityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureVisibility@canEditPage\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_caneditpage_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureVisibility@canEditPage is PROOF_READY but no test file at tests/Unit/FeatureVisibilityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::canSeeField",
        "fqmn": "App\\Support\\FeatureVisibility@canSeeField",
        "expected_test_path": "tests/Unit/FeatureVisibilityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureVisibility;\n\nclass FeatureVisibilityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureVisibility@canSeeField\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canseefield_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureVisibility@canSeeField is PROOF_READY but no test file at tests/Unit/FeatureVisibilityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/FeatureVisibility.php::App\\Support\\FeatureVisibility::deriveFeatureSlugFromEmployerNav",
        "fqmn": "App\\Support\\FeatureVisibility@deriveFeatureSlugFromEmployerNav",
        "expected_test_path": "tests/Unit/FeatureVisibilityTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\FeatureVisibility;\n\nclass FeatureVisibilityTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\FeatureVisibility@deriveFeatureSlugFromEmployerNav\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_derivefeatureslugfromemployernav_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\FeatureVisibility@deriveFeatureSlugFromEmployerNav is PROOF_READY but no test file at tests/Unit/FeatureVisibilityTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::canAccessClass",
        "fqmn": "App\\Support\\GateManifest@canAccessClass",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@canAccessClass\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canaccessclass_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@canAccessClass is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::check",
        "fqmn": "App\\Support\\GateManifest@check",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@check\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_check_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@check is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::entryFor",
        "fqmn": "App\\Support\\GateManifest@entryFor",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@entryFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_entryfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@entryFor is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::featureKeyFor",
        "fqmn": "App\\Support\\GateManifest@featureKeyFor",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@featureKeyFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_featurekeyfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@featureKeyFor is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::fieldFeatureKeyFor",
        "fqmn": "App\\Support\\GateManifest@fieldFeatureKeyFor",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@fieldFeatureKeyFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fieldfeaturekeyfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@fieldFeatureKeyFor is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::groupKeysForPanel",
        "fqmn": "App\\Support\\GateManifest@groupKeysForPanel",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@groupKeysForPanel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_groupkeysforpanel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@groupKeysForPanel is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::navItemsForPanel",
        "fqmn": "App\\Support\\GateManifest@navItemsForPanel",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@navItemsForPanel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_navitemsforpanel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@navItemsForPanel is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::resolvePromotionUrl",
        "fqmn": "App\\Support\\GateManifest@resolvePromotionUrl",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@resolvePromotionUrl\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvepromotionurl_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@resolvePromotionUrl is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GateManifest.php::App\\Support\\GateManifest::visibleToRole",
        "fqmn": "App\\Support\\GateManifest@visibleToRole",
        "expected_test_path": "tests/Unit/GateManifestTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GateManifest;\n\nclass GateManifestTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GateManifest@visibleToRole\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_visibletorole_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GateManifest@visibleToRole is PROOF_READY but no test file at tests/Unit/GateManifestTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GuidedBadges.php::App\\Support\\GuidedBadges::templates",
        "fqmn": "App\\Support\\GuidedBadges@templates",
        "expected_test_path": "tests/Unit/GuidedBadgesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GuidedBadges;\n\nclass GuidedBadgesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GuidedBadges@templates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_templates_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GuidedBadges@templates is PROOF_READY but no test file at tests/Unit/GuidedBadgesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/GuidedCompanyValues.php::App\\Support\\GuidedCompanyValues::templates",
        "fqmn": "App\\Support\\GuidedCompanyValues@templates",
        "expected_test_path": "tests/Unit/GuidedCompanyValuesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\GuidedCompanyValues;\n\nclass GuidedCompanyValuesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\GuidedCompanyValues@templates\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_templates_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\GuidedCompanyValues@templates is PROOF_READY but no test file at tests/Unit/GuidedCompanyValuesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::derivePanelFromPath",
        "fqmn": "App\\Support\\Help@derivePanelFromPath",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@derivePanelFromPath\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_derivepanelfrompath_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@derivePanelFromPath is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::findRelevantByPath",
        "fqmn": "App\\Support\\Help@findRelevantByPath",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@findRelevantByPath\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_findrelevantbypath_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@findRelevantByPath is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::formatFewshots",
        "fqmn": "App\\Support\\Help@formatFewshots",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@formatFewshots\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formatfewshots_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@formatFewshots is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadCapabilities",
        "fqmn": "App\\Support\\Help@loadCapabilities",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@loadCapabilities\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loadcapabilities_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@loadCapabilities is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadFewshots",
        "fqmn": "App\\Support\\Help@loadFewshots",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@loadFewshots\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loadfewshots_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@loadFewshots is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::loadWorkflows",
        "fqmn": "App\\Support\\Help@loadWorkflows",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@loadWorkflows\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_loadworkflows_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@loadWorkflows is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::pickFewshotsForPath",
        "fqmn": "App\\Support\\Help@pickFewshotsForPath",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@pickFewshotsForPath\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pickfewshotsforpath_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@pickFewshotsForPath is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::pickWorkflowsForPath",
        "fqmn": "App\\Support\\Help@pickWorkflowsForPath",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@pickWorkflowsForPath\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pickworkflowsforpath_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@pickWorkflowsForPath is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::saveFewshots",
        "fqmn": "App\\Support\\Help@saveFewshots",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@saveFewshots\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_savefewshots_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@saveFewshots is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::saveWorkflows",
        "fqmn": "App\\Support\\Help@saveWorkflows",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@saveWorkflows\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_saveworkflows_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@saveWorkflows is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Help.php::App\\Support\\Help::summarizeCapability",
        "fqmn": "App\\Support\\Help@summarizeCapability",
        "expected_test_path": "tests/Unit/HelpTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Help;\n\nclass HelpTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Help@summarizeCapability\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_summarizecapability_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Help@summarizeCapability is PROOF_READY but no test file at tests/Unit/HelpTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::hrefFor",
        "fqmn": "App\\Support\\HelpId@hrefFor",
        "expected_test_path": "tests/Unit/HelpIdTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HelpId;\n\nclass HelpIdTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HelpId@hrefFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hreffor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HelpId@hrefFor is PROOF_READY but no test file at tests/Unit/HelpIdTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::idFor",
        "fqmn": "App\\Support\\HelpId@idFor",
        "expected_test_path": "tests/Unit/HelpIdTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HelpId;\n\nclass HelpIdTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HelpId@idFor\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_idfor_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HelpId@idFor is PROOF_READY but no test file at tests/Unit/HelpIdTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::keys",
        "fqmn": "App\\Support\\HelpId@keys",
        "expected_test_path": "tests/Unit/HelpIdTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HelpId;\n\nclass HelpIdTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HelpId@keys\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_keys_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HelpId@keys is PROOF_READY but no test file at tests/Unit/HelpIdTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HelpId.php::App\\Support\\HelpId::manifest",
        "fqmn": "App\\Support\\HelpId@manifest",
        "expected_test_path": "tests/Unit/HelpIdTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HelpId;\n\nclass HelpIdTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HelpId@manifest\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_manifest_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HelpId@manifest is PROOF_READY but no test file at tests/Unit/HelpIdTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::get",
        "fqmn": "App\\Support\\HelpMemory@get",
        "expected_test_path": "tests/Unit/HelpMemoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HelpMemory;\n\nclass HelpMemoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HelpMemory@get\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_get_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HelpMemory@get is PROOF_READY but no test file at tests/Unit/HelpMemoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::hasCoveredAll",
        "fqmn": "App\\Support\\HelpMemory@hasCoveredAll",
        "expected_test_path": "tests/Unit/HelpMemoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HelpMemory;\n\nclass HelpMemoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HelpMemory@hasCoveredAll\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_hascoveredall_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HelpMemory@hasCoveredAll is PROOF_READY but no test file at tests/Unit/HelpMemoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HelpMemory.php::App\\Support\\HelpMemory::rememberCategories",
        "fqmn": "App\\Support\\HelpMemory@rememberCategories",
        "expected_test_path": "tests/Unit/HelpMemoryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HelpMemory;\n\nclass HelpMemoryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HelpMemory@rememberCategories\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_remembercategories_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HelpMemory@rememberCategories is PROOF_READY but no test file at tests/Unit/HelpMemoryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HelpTickets.php::App\\Support\\HelpTickets::log",
        "fqmn": "App\\Support\\HelpTickets@log",
        "expected_test_path": "tests/Unit/HelpTicketsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HelpTickets;\n\nclass HelpTicketsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HelpTickets@log\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_log_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HelpTickets@log is PROOF_READY but no test file at tests/Unit/HelpTicketsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/HireReadinessAccess.php::App\\Support\\HireReadinessAccess::canAccess",
        "fqmn": "App\\Support\\HireReadinessAccess@canAccess",
        "expected_test_path": "tests/Unit/HireReadinessAccessTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\HireReadinessAccess;\n\nclass HireReadinessAccessTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\HireReadinessAccess@canAccess\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canaccess_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\HireReadinessAccess@canAccess is PROOF_READY but no test file at tests/Unit/HireReadinessAccessTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/JobsAccess.php::App\\Support\\JobsAccess::canAccess",
        "fqmn": "App\\Support\\JobsAccess@canAccess",
        "expected_test_path": "tests/Unit/JobsAccessTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\JobsAccess;\n\nclass JobsAccessTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\JobsAccess@canAccess\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canaccess_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\JobsAccess@canAccess is PROOF_READY but no test file at tests/Unit/JobsAccessTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/LandingResolver.php::App\\Support\\LandingResolver::resolveLandingPath",
        "fqmn": "App\\Support\\LandingResolver@resolveLandingPath",
        "expected_test_path": "tests/Unit/LandingResolverTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\LandingResolver;\n\nclass LandingResolverTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\LandingResolver@resolveLandingPath\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolvelandingpath_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\LandingResolver@resolveLandingPath is PROOF_READY but no test file at tests/Unit/LandingResolverTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatDateTime",
        "fqmn": "App\\Support\\Locale@formatDateTime",
        "expected_test_path": "tests/Unit/LocaleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Locale;\n\nclass LocaleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Locale@formatDateTime\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formatdatetime_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Locale@formatDateTime is PROOF_READY but no test file at tests/Unit/LocaleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatNumber",
        "fqmn": "App\\Support\\Locale@formatNumber",
        "expected_test_path": "tests/Unit/LocaleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Locale;\n\nclass LocaleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Locale@formatNumber\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formatnumber_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Locale@formatNumber is PROOF_READY but no test file at tests/Unit/LocaleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Locale.php::App\\Support\\Locale::formatPercent",
        "fqmn": "App\\Support\\Locale@formatPercent",
        "expected_test_path": "tests/Unit/LocaleTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Locale;\n\nclass LocaleTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Locale@formatPercent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formatpercent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Locale@formatPercent is PROOF_READY but no test file at tests/Unit/LocaleTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::channel",
        "fqmn": "App\\Support\\Logging\\LogFake@channel",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Logging\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Logging\\LogFake@channel\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_channel_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Logging\\LogFake@channel is PROOF_READY but no test file at tests/Unit/LogFakeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::fake",
        "fqmn": "App\\Support\\Logging\\LogFake@fake",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Logging\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Logging\\LogFake@fake\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fake_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Logging\\LogFake@fake is PROOF_READY but no test file at tests/Unit/LogFakeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::logged",
        "fqmn": "App\\Support\\Logging\\LogFake@logged",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Logging\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Logging\\LogFake@logged\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_logged_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Logging\\LogFake@logged is PROOF_READY but no test file at tests/Unit/LogFakeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Logging/LogFake.php::App\\Support\\Logging\\LogFake::stack",
        "fqmn": "App\\Support\\Logging\\LogFake@stack",
        "expected_test_path": "tests/Unit/LogFakeTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Logging\\LogFake;\n\nclass LogFakeTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Logging\\LogFake@stack\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_stack_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Logging\\LogFake@stack is PROOF_READY but no test file at tests/Unit/LogFakeTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPath",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPath",
        "expected_test_path": "tests/Unit/SupplierPathGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Media\\SupplierPathGenerator;\n\nclass SupplierPathGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Media\\SupplierPathGenerator@getPath\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpath_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Media\\SupplierPathGenerator@getPath is PROOF_READY but no test file at tests/Unit/SupplierPathGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPathForConversions",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForConversions",
        "expected_test_path": "tests/Unit/SupplierPathGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Media\\SupplierPathGenerator;\n\nclass SupplierPathGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Media\\SupplierPathGenerator@getPathForConversions\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpathforconversions_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Media\\SupplierPathGenerator@getPathForConversions is PROOF_READY but no test file at tests/Unit/SupplierPathGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Media/SupplierPathGenerator.php::App\\Support\\Media\\SupplierPathGenerator::getPathForResponsiveImages",
        "fqmn": "App\\Support\\Media\\SupplierPathGenerator@getPathForResponsiveImages",
        "expected_test_path": "tests/Unit/SupplierPathGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Media\\SupplierPathGenerator;\n\nclass SupplierPathGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Media\\SupplierPathGenerator@getPathForResponsiveImages\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getpathforresponsiveimages_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Media\\SupplierPathGenerator@getPathForResponsiveImages is PROOF_READY but no test file at tests/Unit/SupplierPathGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/MetricContract.php::App\\Support\\MetricContract::factory",
        "fqmn": "App\\Support\\MetricContract@factory",
        "expected_test_path": "tests/Unit/MetricContractTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\MetricContract;\n\nclass MetricContractTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\MetricContract@factory\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_factory_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\MetricContract@factory is PROOF_READY but no test file at tests/Unit/MetricContractTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Money.php::App\\Support\\Money::formatSarFromHalalas",
        "fqmn": "App\\Support\\Money@formatSarFromHalalas",
        "expected_test_path": "tests/Unit/MoneyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Money;\n\nclass MoneyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Money@formatSarFromHalalas\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_formatsarfromhalalas_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Money@formatSarFromHalalas is PROOF_READY but no test file at tests/Unit/MoneyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Money.php::App\\Support\\Money::halalasFromSar",
        "fqmn": "App\\Support\\Money@halalasFromSar",
        "expected_test_path": "tests/Unit/MoneyTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Money;\n\nclass MoneyTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Money@halalasFromSar\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_halalasfromsar_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Money@halalasFromSar is PROOF_READY but no test file at tests/Unit/MoneyTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildAdminGroups",
        "fqmn": "App\\Support\\NavBuilder@buildAdminGroups",
        "expected_test_path": "tests/Unit/NavBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\NavBuilder;\n\nclass NavBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\NavBuilder@buildAdminGroups\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildadmingroups_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\NavBuilder@buildAdminGroups is PROOF_READY but no test file at tests/Unit/NavBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildAdminItems",
        "fqmn": "App\\Support\\NavBuilder@buildAdminItems",
        "expected_test_path": "tests/Unit/NavBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\NavBuilder;\n\nclass NavBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\NavBuilder@buildAdminItems\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildadminitems_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\NavBuilder@buildAdminItems is PROOF_READY but no test file at tests/Unit/NavBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildGroups",
        "fqmn": "App\\Support\\NavBuilder@buildGroups",
        "expected_test_path": "tests/Unit/NavBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\NavBuilder;\n\nclass NavBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\NavBuilder@buildGroups\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_buildgroups_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\NavBuilder@buildGroups is PROOF_READY but no test file at tests/Unit/NavBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/NavBuilder.php::App\\Support\\NavBuilder::buildItems",
        "fqmn": "App\\Support\\NavBuilder@buildItems",
        "expected_test_path": "tests/Unit/NavBuilderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\NavBuilder;\n\nclass NavBuilderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\NavBuilder@buildItems\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_builditems_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\NavBuilder@buildItems is PROOF_READY but no test file at tests/Unit/NavBuilderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/NavSeen.php::App\\Support\\NavSeen::getLastSeen",
        "fqmn": "App\\Support\\NavSeen@getLastSeen",
        "expected_test_path": "tests/Unit/NavSeenTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\NavSeen;\n\nclass NavSeenTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\NavSeen@getLastSeen\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_getlastseen_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Support\\NavSeen@getLastSeen is PROOF_READY but no test file at tests/Unit/NavSeenTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/NavSeen.php::App\\Support\\NavSeen::markSeen",
        "fqmn": "App\\Support\\NavSeen@markSeen",
        "expected_test_path": "tests/Unit/NavSeenTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\NavSeen;\n\nclass NavSeenTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\NavSeen@markSeen\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_markseen_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface App\\Support\\NavSeen@markSeen is PROOF_READY but no test file at tests/Unit/NavSeenTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Notifications/NotificationSender.php::App\\Support\\Notifications\\NotificationSender::sendForSubscriptionEvent",
        "fqmn": "App\\Support\\Notifications\\NotificationSender@sendForSubscriptionEvent",
        "expected_test_path": "tests/Unit/NotificationSenderTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Notifications\\NotificationSender;\n\nclass NotificationSenderTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Notifications\\NotificationSender@sendForSubscriptionEvent\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_sendforsubscriptionevent_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Notifications\\NotificationSender@sendForSubscriptionEvent is PROOF_READY but no test file at tests/Unit/NotificationSenderTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/PlanVersions/FeatureCatalog.php::App\\Support\\PlanVersions\\FeatureCatalog::seats",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@seats",
        "expected_test_path": "tests/Unit/FeatureCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\PlanVersions\\FeatureCatalog;\n\nclass FeatureCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\PlanVersions\\FeatureCatalog@seats\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_seats_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\PlanVersions\\FeatureCatalog@seats is PROOF_READY but no test file at tests/Unit/FeatureCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/PlanVersions/FeatureCatalog.php::App\\Support\\PlanVersions\\FeatureCatalog::trial",
        "fqmn": "App\\Support\\PlanVersions\\FeatureCatalog@trial",
        "expected_test_path": "tests/Unit/FeatureCatalogTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\PlanVersions\\FeatureCatalog;\n\nclass FeatureCatalogTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\PlanVersions\\FeatureCatalog@trial\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_trial_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\PlanVersions\\FeatureCatalog@trial is PROOF_READY but no test file at tests/Unit/FeatureCatalogTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::collect",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect",
        "expected_test_path": "tests/Unit/PlanVersionFeatureComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\PlanVersions\\PlanVersionFeatureComposer;\n\nclass PlanVersionFeatureComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_collect_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\PlanVersions\\PlanVersionFeatureComposer@collect is PROOF_READY but no test file at tests/Unit/PlanVersionFeatureComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionFeatureComposer.php::App\\Support\\PlanVersions\\PlanVersionFeatureComposer::prefill",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionFeatureComposer@prefill",
        "expected_test_path": "tests/Unit/PlanVersionFeatureComposerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\PlanVersions\\PlanVersionFeatureComposer;\n\nclass PlanVersionFeatureComposerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\PlanVersions\\PlanVersionFeatureComposer@prefill\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_prefill_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\PlanVersions\\PlanVersionFeatureComposer@prefill is PROOF_READY but no test file at tests/Unit/PlanVersionFeatureComposerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::collectFormMeta",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@collectFormMeta",
        "expected_test_path": "tests/Unit/PlanVersionSynchronizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\PlanVersions\\PlanVersionSynchronizer;\n\nclass PlanVersionSynchronizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\PlanVersions\\PlanVersionSynchronizer@collectFormMeta\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_collectformmeta_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\PlanVersions\\PlanVersionSynchronizer@collectFormMeta is PROOF_READY but no test file at tests/Unit/PlanVersionSynchronizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::extractSeatLimits",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractSeatLimits",
        "expected_test_path": "tests/Unit/PlanVersionSynchronizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\PlanVersions\\PlanVersionSynchronizer;\n\nclass PlanVersionSynchronizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractSeatLimits\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_extractseatlimits_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractSeatLimits is PROOF_READY but no test file at tests/Unit/PlanVersionSynchronizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::extractTrialDays",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractTrialDays",
        "expected_test_path": "tests/Unit/PlanVersionSynchronizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\PlanVersions\\PlanVersionSynchronizer;\n\nclass PlanVersionSynchronizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractTrialDays\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_extracttrialdays_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\PlanVersions\\PlanVersionSynchronizer@extractTrialDays is PROOF_READY but no test file at tests/Unit/PlanVersionSynchronizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/PlanVersions/PlanVersionSynchronizer.php::App\\Support\\PlanVersions\\PlanVersionSynchronizer::prefillFormDefaults",
        "fqmn": "App\\Support\\PlanVersions\\PlanVersionSynchronizer@prefillFormDefaults",
        "expected_test_path": "tests/Unit/PlanVersionSynchronizerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\PlanVersions\\PlanVersionSynchronizer;\n\nclass PlanVersionSynchronizerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\PlanVersions\\PlanVersionSynchronizer@prefillFormDefaults\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_prefillformdefaults_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\PlanVersions\\PlanVersionSynchronizer@prefillFormDefaults is PROOF_READY but no test file at tests/Unit/PlanVersionSynchronizerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::canAccess",
        "fqmn": "App\\Support\\RefreshmentsAccess@canAccess",
        "expected_test_path": "tests/Unit/RefreshmentsAccessTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\RefreshmentsAccess;\n\nclass RefreshmentsAccessTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\RefreshmentsAccess@canAccess\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canaccess_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\RefreshmentsAccess@canAccess is PROOF_READY but no test file at tests/Unit/RefreshmentsAccessTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/RefreshmentsAccess.php::App\\Support\\RefreshmentsAccess::canNavigate",
        "fqmn": "App\\Support\\RefreshmentsAccess@canNavigate",
        "expected_test_path": "tests/Unit/RefreshmentsAccessTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\RefreshmentsAccess;\n\nclass RefreshmentsAccessTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\RefreshmentsAccess@canNavigate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_cannavigate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\RefreshmentsAccess@canNavigate is PROOF_READY but no test file at tests/Unit/RefreshmentsAccessTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::count",
        "fqmn": "App\\Support\\ResettingUserQuery@count",
        "expected_test_path": "tests/Unit/ResettingUserQueryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\ResettingUserQuery;\n\nclass ResettingUserQueryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\ResettingUserQuery@count\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_count_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\ResettingUserQuery@count is PROOF_READY but no test file at tests/Unit/ResettingUserQueryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::exists",
        "fqmn": "App\\Support\\ResettingUserQuery@exists",
        "expected_test_path": "tests/Unit/ResettingUserQueryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\ResettingUserQuery;\n\nclass ResettingUserQueryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\ResettingUserQuery@exists\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_exists_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\ResettingUserQuery@exists is PROOF_READY but no test file at tests/Unit/ResettingUserQueryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/ResettingUserQuery.php::App\\Support\\ResettingUserQuery::where",
        "fqmn": "App\\Support\\ResettingUserQuery@where",
        "expected_test_path": "tests/Unit/ResettingUserQueryTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\ResettingUserQuery;\n\nclass ResettingUserQueryTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\ResettingUserQuery@where\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_where_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\ResettingUserQuery@where is PROOF_READY but no test file at tests/Unit/ResettingUserQueryTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/RewardsAccess.php::App\\Support\\RewardsAccess::isEnabled",
        "fqmn": "App\\Support\\RewardsAccess@isEnabled",
        "expected_test_path": "tests/Unit/RewardsAccessTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\RewardsAccess;\n\nclass RewardsAccessTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\RewardsAccess@isEnabled\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_isenabled_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\RewardsAccess@isEnabled is PROOF_READY but no test file at tests/Unit/RewardsAccessTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/RewardsAccess.php::App\\Support\\RewardsAccess::pointValueHalalas",
        "fqmn": "App\\Support\\RewardsAccess@pointValueHalalas",
        "expected_test_path": "tests/Unit/RewardsAccessTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\RewardsAccess;\n\nclass RewardsAccessTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\RewardsAccess@pointValueHalalas\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_pointvaluehalalas_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\RewardsAccess@pointValueHalalas is PROOF_READY but no test file at tests/Unit/RewardsAccessTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Roles.php::App\\Support\\Roles::isSuperAdmin",
        "fqmn": "App\\Support\\Roles@isSuperAdmin",
        "expected_test_path": "tests/Unit/RolesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Roles;\n\nclass RolesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Roles@isSuperAdmin\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_issuperadmin_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Support\\Roles@isSuperAdmin is PROOF_READY but no test file at tests/Unit/RolesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Roles.php::App\\Support\\Roles::isSupplier",
        "fqmn": "App\\Support\\Roles@isSupplier",
        "expected_test_path": "tests/Unit/RolesTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Roles;\n\nclass RolesTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Roles@isSupplier\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_issupplier_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n    }\n}\n",
        "explanation": "Surface App\\Support\\Roles@isSupplier is PROOF_READY but no test file at tests/Unit/RolesTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::codeToName",
        "fqmn": "App\\Support\\SaudiRegions@codeToName",
        "expected_test_path": "tests/Unit/SaudiRegionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\SaudiRegions;\n\nclass SaudiRegionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\SaudiRegions@codeToName\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_codetoname_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\SaudiRegions@codeToName is PROOF_READY but no test file at tests/Unit/SaudiRegionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::nameToCode",
        "fqmn": "App\\Support\\SaudiRegions@nameToCode",
        "expected_test_path": "tests/Unit/SaudiRegionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\SaudiRegions;\n\nclass SaudiRegionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\SaudiRegions@nameToCode\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_nametocode_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\SaudiRegions@nameToCode is PROOF_READY but no test file at tests/Unit/SaudiRegionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/SaudiRegions.php::App\\Support\\SaudiRegions::options",
        "fqmn": "App\\Support\\SaudiRegions@options",
        "expected_test_path": "tests/Unit/SaudiRegionsTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\SaudiRegions;\n\nclass SaudiRegionsTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\SaudiRegions@options\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_options_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\SaudiRegions@options is PROOF_READY but no test file at tests/Unit/SaudiRegionsTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Slugs/UniqueSlugGenerator.php::App\\Support\\Slugs\\UniqueSlugGenerator::generate",
        "fqmn": "App\\Support\\Slugs\\UniqueSlugGenerator@generate",
        "expected_test_path": "tests/Unit/UniqueSlugGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Slugs\\UniqueSlugGenerator;\n\nclass UniqueSlugGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Slugs\\UniqueSlugGenerator@generate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_generate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Slugs\\UniqueSlugGenerator@generate is PROOF_READY but no test file at tests/Unit/UniqueSlugGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Slugs/UniqueSlugGenerator.php::App\\Support\\Slugs\\UniqueSlugGenerator::slugify",
        "fqmn": "App\\Support\\Slugs\\UniqueSlugGenerator@slugify",
        "expected_test_path": "tests/Unit/UniqueSlugGeneratorTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Slugs\\UniqueSlugGenerator;\n\nclass UniqueSlugGeneratorTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Slugs\\UniqueSlugGenerator@slugify\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_slugify_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Slugs\\UniqueSlugGenerator@slugify is PROOF_READY but no test file at tests/Unit/UniqueSlugGeneratorTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/StoreAccess.php::App\\Support\\StoreAccess::canAccess",
        "fqmn": "App\\Support\\StoreAccess@canAccess",
        "expected_test_path": "tests/Unit/StoreAccessTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\StoreAccess;\n\nclass StoreAccessTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\StoreAccess@canAccess\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_canaccess_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\StoreAccess@canAccess is PROOF_READY but no test file at tests/Unit/StoreAccessTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Subscriptions/SubscriptionStatusSnapshot.php::App\\Support\\Subscriptions\\SubscriptionStatusSnapshot::for",
        "fqmn": "App\\Support\\Subscriptions\\SubscriptionStatusSnapshot@for",
        "expected_test_path": "tests/Unit/SubscriptionStatusSnapshotTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Subscriptions\\SubscriptionStatusSnapshot;\n\nclass SubscriptionStatusSnapshotTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Subscriptions\\SubscriptionStatusSnapshot@for\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_for_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\Subscriptions\\SubscriptionStatusSnapshot@for is PROOF_READY but no test file at tests/Unit/SubscriptionStatusSnapshotTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/Wallet/WalletFreezeGuard.php::App\\Support\\Wallet\\WalletFreezeGuard::assertNotFrozen",
        "fqmn": "App\\Support\\Wallet\\WalletFreezeGuard@assertNotFrozen",
        "expected_test_path": "tests/Unit/WalletFreezeGuardTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_exception_thrown"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\Wallet\\WalletFreezeGuard;\n\nclass WalletFreezeGuardTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\Wallet\\WalletFreezeGuard@assertNotFrozen\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_assertnotfrozen_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // $this->expectException(<ExceptionClass>::class);\n    }\n}\n",
        "explanation": "Surface App\\Support\\Wallet\\WalletFreezeGuard@assertNotFrozen is PROOF_READY but no test file at tests/Unit/WalletFreezeGuardTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_method::app/Supp",
        "kind": "COVERAGE_GAP",
        "surface_id": "method::app/Support/WidgetVisualHelper.php::App\\Support\\WidgetVisualHelper::resolve",
        "fqmn": "App\\Support\\WidgetVisualHelper@resolve",
        "expected_test_path": "tests/Unit/WidgetVisualHelperTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\Support\\WidgetVisualHelper;\n\nclass WidgetVisualHelperTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Support\\WidgetVisualHelper@resolve\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_resolve_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Support\\WidgetVisualHelper@resolve is PROOF_READY but no test file at tests/Unit/WidgetVisualHelperTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::get::/health::App\\Http\\Controllers\\Api\\HealthController::status",
        "fqmn": "App\\Http\\Controllers\\Api\\HealthController@status",
        "expected_test_path": "tests/Feature/HealthControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_db_write"
        ],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\HealthController;\n\nclass HealthControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\HealthController@status\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_status_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertDatabaseHas('<table>', ['<column>' => '<value>']);\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\HealthController@status is PROOF_READY but no test file at tests/Feature/HealthControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/ap",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/api.php::get::/public/pricing-plans::closure",
        "fqmn": "route::routes/api.php::get::/public/pricing-plans::closure",
        "expected_test_path": "tests/Unit/route::routes/api.php::get::/public/pricing-plans::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/api.php::get::/public/pricing-plans::closure;\n\nclass route::routes/api.php::get::/public/pricing-plans::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/api.php::get::/public/pricing-plans::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/api.php::get::/public/pricing-plans::closure is PROOF_READY but no test file at tests/Unit/route::routes/api.php::get::/public/pricing-plans::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/au",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/auth.php::get::/register::App\\Http\\Controllers\\Auth\\RegisteredUserController::create",
        "fqmn": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
        "expected_test_path": "tests/Feature/RegisteredUserControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\RegisteredUserController;\n\nclass RegisteredUserControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\RegisteredUserController@create\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_create_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\RegisteredUserController@create is PROOF_READY but no test file at tests/Feature/RegisteredUserControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/au",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/auth.php::get::/verify-email::App\\Http\\Controllers\\Auth\\EmailVerificationPromptController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
        "expected_test_path": "tests/Feature/EmailVerificationPromptControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\EmailVerificationPromptController;\n\nclass EmailVerificationPromptControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke is PROOF_READY but no test file at tests/Feature/EmailVerificationPromptControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/au",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/auth.php::get::/verify-email/{id}/{hash}::App\\Http\\Controllers\\Auth\\PublicVerifyEmailController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke",
        "expected_test_path": "tests/Feature/PublicVerifyEmailControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [
          "assert_event_dispatched"
        ],
        "optional_assertions": [
          "assert_http_called"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Auth\\PublicVerifyEmailController;\n\nclass PublicVerifyEmailControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // Event::assertDispatched(<EventClass>::class);\n        // Http::assertSent(fn ($req) => $req->url() === '<url>');\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Auth\\PublicVerifyEmailController@__invoke is PROOF_READY but no test file at tests/Feature/PublicVerifyEmailControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/in",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/internal_governance.php::get::/metrics/governance::closure",
        "fqmn": "route::routes/internal_governance.php::get::/metrics/governance::closure",
        "expected_test_path": "tests/Unit/route::routes/internal_governance.php::get::/metrics/governance::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/internal_governance.php::get::/metrics/governance::closure;\n\nclass route::routes/internal_governance.php::get::/metrics/governance::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/internal_governance.php::get::/metrics/governance::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface route::routes/internal_governance.php::get::/metrics/governance::closure is PROOF_READY but no test file at tests/Unit/route::routes/internal_governance.php::get::/metrics/governance::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/te",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "fqmn": "route::routes/test-pdf.php::get::/test-arabic-pdf::closure",
        "expected_test_path": "tests/Unit/route::routes/test-pdf.php::get::/test-arabic-pdf::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/test-pdf.php::get::/test-arabic-pdf::closure;\n\nclass route::routes/test-pdf.php::get::/test-arabic-pdf::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/test-pdf.php::get::/test-arabic-pdf::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/test-pdf.php::get::/test-arabic-pdf::closure is PROOF_READY but no test file at tests/Unit/route::routes/test-pdf.php::get::/test-arabic-pdf::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "fqmn": "route::routes/web_dev.php::get::/puppeteer_login_dev::closure",
        "expected_test_path": "tests/Unit/route::routes/web_dev.php::get::/puppeteer_login_dev::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/web_dev.php::get::/puppeteer_login_dev::closure;\n\nclass route::routes/web_dev.php::get::/puppeteer_login_dev::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web_dev.php::get::/puppeteer_login_dev::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface route::routes/web_dev.php::get::/puppeteer_login_dev::closure is PROOF_READY but no test file at tests/Unit/route::routes/web_dev.php::get::/puppeteer_login_dev::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web_test_login.php::get::/magic-login::closure",
        "fqmn": "route::routes/web_test_login.php::get::/magic-login::closure",
        "expected_test_path": "tests/Unit/route::routes/web_test_login.php::get::/magic-login::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/web_test_login.php::get::/magic-login::closure;\n\nclass route::routes/web_test_login.php::get::/magic-login::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web_test_login.php::get::/magic-login::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/web_test_login.php::get::/magic-login::closure is PROOF_READY but no test file at tests/Unit/route::routes/web_test_login.php::get::/magic-login::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/::App\\Http\\Controllers\\LandingController::__invoke",
        "fqmn": "App\\Http\\Controllers\\LandingController@__invoke",
        "expected_test_path": "tests/Feature/LandingControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\LandingController;\n\nclass LandingControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\LandingController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\LandingController@__invoke is PROOF_READY but no test file at tests/Feature/LandingControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/::App\\Http\\Controllers\\SubscriptionController::index",
        "fqmn": "App\\Http\\Controllers\\SubscriptionController@index",
        "expected_test_path": "tests/Feature/SubscriptionControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\SubscriptionController;\n\nclass SubscriptionControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\SubscriptionController@index\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_index_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\SubscriptionController@index is PROOF_READY but no test file at tests/Feature/SubscriptionControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/::closure",
        "fqmn": "route::routes/web.php::get::/::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/web.php::get::/::closure;\n\nclass route::routes/web.php::get::/::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/web.php::get::/::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/assets/riyal.svg::closure",
        "fqmn": "route::routes/web.php::get::/assets/riyal.svg::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/assets/riyal.svg::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/web.php::get::/assets/riyal.svg::closure;\n\nclass route::routes/web.php::get::/assets/riyal.svg::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/assets/riyal.svg::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/web.php::get::/assets/riyal.svg::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/assets/riyal.svg::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/auth/dev/setup::closure",
        "fqmn": "route::routes/web.php::get::/auth/dev/setup::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/auth/dev/setup::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [
          "assert_cache_written"
        ],
        "forbidden_assertions": [],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/web.php::get::/auth/dev/setup::closure;\n\nclass route::routes/web.php::get::/auth/dev/setup::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/auth/dev/setup::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n        // $this->assertTrue(Cache::has('<key>'));\n    }\n}\n",
        "explanation": "Surface route::routes/web.php::get::/auth/dev/setup::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/auth/dev/setup::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/billing/update-card/{cardId}::App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController::__invoke",
        "fqmn": "App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke",
        "expected_test_path": "tests/Feature/UpdateCardMagicLinkControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController;\n\nclass UpdateCardMagicLinkControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test___invoke_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Billing\\UpdateCardMagicLinkController@__invoke is PROOF_READY but no test file at tests/Feature/UpdateCardMagicLinkControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/dashboard::closure",
        "fqmn": "route::routes/web.php::get::/dashboard::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/dashboard::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/web.php::get::/dashboard::closure;\n\nclass route::routes/web.php::get::/dashboard::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/dashboard::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/web.php::get::/dashboard::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/dashboard::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/privacy-policy::closure",
        "fqmn": "route::routes/web.php::get::/privacy-policy::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/privacy-policy::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/web.php::get::/privacy-policy::closure;\n\nclass route::routes/web.php::get::/privacy-policy::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/privacy-policy::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/web.php::get::/privacy-policy::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/privacy-policy::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/setup::App\\Http\\Controllers\\Api\\SetupController::setup",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@setup",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SetupController;\n\nclass SetupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SetupController@setup\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_setup_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SetupController@setup is PROOF_READY but no test file at tests/Feature/SetupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/setup/kpi::App\\Http\\Controllers\\Api\\SetupController::kpi",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@kpi",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SetupController;\n\nclass SetupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SetupController@kpi\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_kpi_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SetupController@kpi is PROOF_READY but no test file at tests/Feature/SetupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/setup/test::App\\Http\\Controllers\\Api\\SetupController::test",
        "fqmn": "App\\Http\\Controllers\\Api\\SetupController@test",
        "expected_test_path": "tests/Feature/SetupControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\SetupController;\n\nclass SetupControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\SetupController@test\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_test_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\SetupController@test is PROOF_READY but no test file at tests/Feature/SetupControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/temp/fix-recognition-cascade::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::fixCascadeBug",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_fixcascadebug_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@fixCascadeBug is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/temp/migrate-recognition::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::debugMigrate",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_debugmigrate_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@debugMigrate is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/temp/recognition-company-check::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::companyCheck",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_companycheck_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@companyCheck is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/temp/recompute-recognition-cascades::App\\Http\\Controllers\\Api\\RecognitionAnalyticsController::recomputeCascades",
        "fqmn": "App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades",
        "expected_test_path": "tests/Feature/RecognitionAnalyticsControllerTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write",
          "assert_event_dispatched",
          "assert_job_pushed"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse App\\Http\\Controllers\\Api\\RecognitionAnalyticsController;\n\nclass RecognitionAnalyticsControllerTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_recomputecascades_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write, assert_event_dispatched, assert_job_pushed\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface App\\Http\\Controllers\\Api\\RecognitionAnalyticsController@recomputeCascades is PROOF_READY but no test file at tests/Feature/RecognitionAnalyticsControllerTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      },
      {
        "candidate_id": "g_route::routes/we",
        "kind": "COVERAGE_GAP",
        "surface_id": "route::routes/web.php::get::/terms-of-service::closure",
        "fqmn": "route::routes/web.php::get::/terms-of-service::closure",
        "expected_test_path": "tests/Unit/route::routes/web.php::get::/terms-of-service::closureTest.php",
        "intent": null,
        "intent_confidence": null,
        "required_assertions": [],
        "optional_assertions": [],
        "forbidden_assertions": [
          "assert_db_write"
        ],
        "test_scaffold": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse App\\route::routes/web.php::get::/terms-of-service::closure;\n\nclass route::routes/web.php::get::/terms-of-service::closureTest extends TestCase\n{\n    /**\n     * SATE coverage-gap candidate.\n     * Generated for surface: route::routes/web.php::get::/terms-of-service::closure\n     * Detected intent: (none)\n     *\n     * This is a SCAFFOLD - review, edit, and add real test data + assertions\n     * before submitting to the allowlist via:\n     *   node public/sate.js submit-decision --decision APPROVE ...\n     */\n    public function test_method_behaves_correctly(): void\n    {\n        // FORBIDDEN ASSERTIONS for this surface (do NOT add):\n        //   assert_db_write\n\n        // TODO: set up test data here\n        $this->markTestIncomplete('SATE scaffold — fill in test data + assertions');\n\n        // Suggested assertions (from intent strategy):\n    }\n}\n",
        "explanation": "Surface route::routes/web.php::get::/terms-of-service::closure is PROOF_READY but no test file at tests/Unit/route::routes/web.php::get::/terms-of-service::closureTest.php is in the MANUAL allowlist. Scaffold proposal below — review, edit, and submit-decision to add to the allowlist.",
        "applied": false,
        "requires_human_decision": true
      }
    ],
    "total": 4052
  },
  "governance_history": {
    "total_decisions": 0,
    "by_decision": {
      "APPROVE": 0,
      "REJECT": 0,
      "DEFER": 0,
      "OTHER": 0
    },
    "by_actor": {},
    "note": "Decisions are append-only per CORE_FREEZE. No retroactive mutation."
  },
  "version_pins": {
    "safety_gate": "v1",
    "quality_gate": "v1",
    "manual_contract": "v1"
  },
  "allowlist_reference": {
    "path": ".ai/manual/approved-tests.json",
    "approved_test_files_count": 1,
    "note": "RUNNER enforcement is file-level. Per MANUAL_STAGE_CONTRACT v1, requested PHPUnit tests must be in this allowlist or RUNNER aborts."
  }
}